Thermal cycler for automatic performance of the polymerase chain reaction with close temperature control

ABSTRACT

An instrument for performing highly accurate PCR employing a sample block in microtiter tray format. The sample block has local balance and local symmetry. A three zone film heater controlled by a computer and ramp cooling solenoid valves also controlled by the computer for gating coolant flow through the block controls the block temperature. Constant bias cooling is used for small changes. Sample temperature is calculated instead of measured. A platen deforms plastic caps to apply a minimum acceptable threshold force for seating the tubes and thermally isolates them. A cover isolates the block. The control software includes diagnostics. An install program tests and characterizes the instrument. A new user interface is used. Disposable, multipiece plastic microtiter trays to give individual freedom to sample tubes are taught.

[0001] This is a continuation-in-part application of U.S. patentapplication Ser. No. 07/620,606, filed Nov. 29, 1990 by Mossa et al.(Attorney Docket No. 2507).

BACKGROUND OF THE INVENTION

[0002] The invention pertains to the field of computer directedinstruments for performing the polymerase chain reaction (hereafterPCR). More particularly, the invention pertains to automated instrumentsthat can perform the polymerase chain reaction simultaneously on manysamples with a very high degree of precision as to results obtained foreach sample. This high precision provides the capability, among otherthings, of performing so-called “quantitative PCR”.

[0003] To amplify DNA (Deoxyribose Nucleic Acid) using the PCR process,it is necessary to cycle a specially constituted liquid reaction mixturethrough a PCR protocol including several different temperatureincubation periods. The reaction mixture is comprised of variouscomponents such as the DNA to be amplified and at least two primersselected in a predetermined way so as to be sufficiently complementaryto the sample DNA as to be able to create extension products of the DNAto be amplified. The reaction mixture includes various enzymes and/orother reagents, as well as several deoxyribonucleoside triphosphatessuch as dATP, dCTP, dGTP and dTTP. Generally, the primers areoligonucleotides which are capable of acting as a point of initiation ofsynthesis when placed under conditions in which synthesis of a primerextension product which is complimentary to a nucleic acid strand isinduced, i.e., in the presence of nucleotides and inducing agents suchas thermostable DNA polymerase at a suitable temperature and pH.

[0004] The Polymerase Chain Reaction (PCR) has proven a phenomenallysuccessful technology for genetic analysis, largely because it is sosimple and requires relatively low cost instrumentation. A key to PCR isthe concept of thermocycling: alternating steps of melting DNA,annealing short primers to the resulting single strands, and extendingthose primers to make new copies of double stranded DNA. Inthermocycling, the PCR reaction mixture is repeatedly cycled from hightemperatures (>90° C.) for melting the DNA, to lower temperatures (40°C. to 70° C.) for primer annealing and extension. The first commercialsystem for performing the thermal cycling required in the polymerasechain reaction, the Perkin-Elmer Cetus DNA Thermal Cycler, wasintroduced in 1987.

[0005] Applications of PCR technology are now moving from basic researchto applications in which large numbers of similar amplifications areroutinely run. These areas include diagnostic research,biopharmaceutical development, genetic analysis, and environmentaltesting. Users in these areas would benefit from a high performance PCRsystem that would provide the user with high throughput, rapidturn-around time, and reproducible results. Users in these areas must beassured of reproducibility from sample-to-sample, run-to-run,lab-to-lab, and instrument-to-instrument.

[0006] For example, the physical mapping process in the Human GenomeProject may become greatly simplified by utilizing sequence taggedsites. An STS is a short, unique sequence easily amplified by PCR andwhich identifies a location on the chromosome. Checking for such sitesto make genome maps requires amplifying large numbers of samples in ashort time with protocols which can be reproducibly run throughout theworld.

[0007] As the number of PCR samples increases, it becomes more importantto integrate amplification with sample preparation andpost-amplification analysis. The sample vessels must not only allowrapid thermal cycling but also permit more automated handling foroperations such as solvent extractions and centrifugation. The vesselsshould work consistently at low volumes, to reduce reagent costs.

[0008] Generally PCR temperature cycling involves at least twoincubations at different temperatures. One of these incubations is forprimer hybridization and a catalyzed primer extension reaction. Theother incubation is for denaturation, i.e., separation of the doublestranded extension products into single strand templates for use in thenext hybridization and extension incubation interval. The details of thepolymerase chain reaction, the temperature cycling and reactionconditions necessary for PCR as well as the various reagents and enzymesnecessary to perform the reaction are described in U.S. Pat. Nos.4,683,202, 4,683,195, EPO Publication 258,017 and 4,889,818 (Taqpolymerase enzyme patent), which are hereby incorporated by reference.

[0009] The purpose of a polymetase chain reaction is to manufacture alarge volume of DNA which is identical to an initially supplied smallvolume of “seed” DNA. The reaction involves copying the strands of theDNA and then using the copies to generate other copies in subsequentcycles. Under ideal conditions, each cycle will double the amount of DNApresent thereby resulting in a geometric progression in the volume ofcopies of the “target” or “seed” DNA strands present in the reactionmixture.

[0010] A typical PCR temperature cycle requires that the reactionmixture be held accurately at each incubation temperature for aprescribed time and that the identical cycle or a similar cycle berepeated many times. A typical PCR program starts at a sampletemperature of 94° C. held for 30 seconds to denature the reactionmixture. Then, the temperature of the reaction mixture is lowered to 37°C. and held for one minute to permit primer hybridization. Next, thetemperature of the reaction mixture is raised to a temperature in therange from 50° C. to 72° C. where it is held for two minutes to promotethe synthesis of extension products. This completes one cycle. The nextPCR cycle then starts by raising the temperature of th reaction mixtureto 94° C. again for strand separation of the extension products formedin the previous cycle (denaturation). Typically, the cycle is repeated25 to 30 times.

[0011] Generally, it is desirable to change the sample temperature tothe next temperature in the cycle as rapidly as possible for severalreasons. First, the chemical reaction has an optimum temperature foreach of its stages. Thus, less time spent at nonoptimum temperaturesmeans a better chemical result is achieved. Another reason is that aminimum time for holding the reaction mixture at each incubationtemperature is required after each said incubation temperature isreached. These minimum incubation times establish the “floor” or minimumtime it takes to complete a cycle. Any time transitioning between sampleincubation temperatures is time which is added to this minimum cycletime. Since the number of cycles is fairly large, this additional timeunnecessarily lengthens the total time needed to complete theamplification.

[0012] In some prior automated PCR instruments, the reaction mixture wasstored in a disposable plastic tube which is closed with a cap. Atypical sample volume for such tubes was approximately 100 microliters.Typically, such instruments used many such tubes filled with sample DNAand reaction mixture inserted into holes called sample wells in a metalblock. To perform the PCR process, the temperature of the metal blockwas controlled according to prescribed temperatures and times specifiedby the user in a PCR protocol file. A computer and associatedelectronics then controlled the temperature of the metal block inaccordance with the user supplied data in the PCR protocol file definingthe times, temperatures and number of cycles, etc. As the metal blockchanged temperature, the samples in the various tubes followed withsimilar changes in temperature. However, in these prior art instrumentsnot all samples experienced exactly the same temperature cycle. In theseprior art PCR instruments, errors in sample temperature were generatedby nonuniformity of temperature from place to place within the metalsample block, i.e., temperature gradients. existed within the metal ofthe block thereby causing some samples to have different temperaturesthan other samples at particular times in the cycle. Further, there weredelays in transferring heat from the sample block to the sample, but thedelays were not the same for all samples. To perform the PCR processsuccessfully and efficiently, and to enable so called “quantitative”PCR, these time delays and temperature errors must be minimized to agreat extent.

[0013] The problems of minimizing time delays for heat transfer to andfrom the sample liquid and minimizing temperature errors due totemperature gradients or nonuniformity in temperature at various pointson the metal block become particularly acute when the size of the regioncontaining samples becomes large. It is a highly desirable attribute fora PCR instrument to have a metal block which is large enough toaccommodate 96 sample tubes arranged in the format of an industrystandard microtiter plate.

[0014] The microtiter plate is a widely used means for handling,processing and analyzing large numbers of small samples in thebiochemistry and biotechnology fields. Typically, a microtiter plate isa tray which is 3⅝ inches wide and 5 inches long and contains 96identical sample wells in an 8 well by 12 well rectangular array on 9millimeter centers. Although microtiter plates are available in a widevariety of materials, shapes and volumes of the sample wells, which areoptimized for many different uses, all microtiter plates have the sameoverall outside dimensions and the same 8×12 array of wells on 9millimeter centers. A wide variety of equipment is available forautomating the handling, processing and analyzing of samples in thisstandard microtiter plate format.

[0015] Generally microtiter plates are made of injection molded orvacuum formed plastic and are inexpensive and considered disposable.Disposability is a highly desirable characteristic because of the legalliability arising out of cross contamination and the difficulty ofwashing and drying microtiter plates after use.

[0016] It is therefore a highly desirable characteristic for a PCRinstrument to be able to perform the PCR reaction on up to 96 samplessimultaneously said samples being arranged in a microtiter plate format.

[0017] Of course, the size of the metal block which is necessary to heatand cool 96 samples in an 8×12 well array on 9 millimeter centers isfairly large. This large area block creates multiple challengingengineering problems for the design of a PCR instrument which is capableof heating and cooling such a block very rapidly in a temperature rangegenerally from 0 to 100° C. with very little tolerance for temperaturevariations between samples. These problems arise from several sources.First, the large thermal mass of the block makes it difficult to movethe block temperature up and down in the operating range with greatrapidity. Second, the need to attach the block to various externaldevices such as manifolds for supply and withdrawal of cooling liquid,block support attachment points, and associated other peripheralequipment creates the potential for temperature gradients to existacross the block which exceed tolerable limits.

[0018] There are also numerous other conflicts between the requirementsin the design of a thermal cycling system for automated performance ofthe PCR reaction or other reactions requiring rapid, accuratetemperature cycling of a large number of samples. For example, to changethe temperature of a metal block rapidly, a large amount of heat must beadded to, or removed from the sample block in a short period of time.Heat can be added from electrical resistance heaters or by flowing aheated fluid in contact with the block. Heat can be removed rapidly byflowing a chilled fluid in contact with the block. However, it issemingly impossible to add or remove large amounts of heat rapidly in ametal block by these means without causing large differences intemperature from place to place in the block thereby forming temperaturegradients which can result in nonuniformity of temperature among thesamples.

[0019] Even after the process of addition or removal of heat isterminated, temperature gradients can persist for a time roughlyproportional to the square of the distance that the heat stored invarious points in the block must travel to cooler regions to eliminatethe temperature gradient. Thus, as a metal block is made larger toaccommodate more samples, the time it takes for temperature gradientsexisting in the block to decay after a temperature change causestemperature gradients which extend across the largest dimensions of theblock can become markedly longer. This makes it increasingly difficultto cycle the temperature of the sample block rapidly while maintainingaccurate temperature uniformity among all the samples.

[0020] Because of the time required for temperature gradients todissipate, an important need has arisen in the design of a highperformance PCR instrument to prevent the creation of temperaturegradients that extend over large distances in the block. Another need isto avoid, as much as possible, the requirement for heat to travel acrossmechanical boundaries between metal parts or other peripheral equipmentattached to the block. It is difficult to join metal parts in a way thatinsures uniformly high thermal conductance everywhere across the joint.Nonuniformities of thermal conductance will generate unwantedtemperature gradients.

SUMMARY OF THE INVENTION

[0021] According to the teachings of the invention, there is disclosedherein a thin walled sample tube for decreasing the delay betweenchanges in sample temperature of the sample block and correspondingchanges in temperature of the reaction mixture. Two different sampletube sizes are disclosed, but each has a thin walled conical sectionthat fits into a matching conical recess in the sample block. Typically,cones with 17° angles relative to the longitudinal axis are used toprevent jamming of the tubes into the sample block but to allow snugfit. Other shapes and angles would also suffice for purposes ofpracticing the invention.

[0022] Also, other types of heat exchangers can also be used other thansample blocks such as liquid baths, ovens, etc. However, the wallthickness of the section of the sample tube which is in contact withwhatever heat exchange is being used should be as thin as possible solong as it is sufficiently strong to withstand the thermal stresses ofPCR cycling and the stresses of normal use. Typically, the sample tubesare made of autoclavable polypropylene such as Himont PD701 with a wallthickness of the conical section in the range from 0.009 to 0.012 inchesplus or minus 0.001 inches. Most preferably, the wall thickness is 0.012inches for larger tubes as shown in FIG. 50.

[0023] In the preferred embodiment, the sample tube also has a thickerwalled cylindrical section which joins with the conical section. Thiscylindrical section provides containment for the original reactionmixture or reagents which may be added after PCR processing.

[0024] The sample tube shown in FIG. 50 has industry standardconfiguration except for the thin walls for compatibility in other PCRsystems. The sample tube of FIG. 15 is a shorter tube which can be usedwith the system disclosed herein. The other subject matter of the systemenvironment in which use of the thin walled sample tubes is preferredare summarized below.

[0025] There is also described herein a novel method and apparatus forachieving very accurate temperature control for a very large number ofsamples arranged in the microtiter plate format during the performanceof very rapid temperature cycling PCR protocols. The teachings of theinvention contemplate a novel structure for a sample block, sample tub sand supporting mounting, heating and cooling apparatus, controlelectronics and software, a novel user interface and a novel method ofusing said apparatus to perform the PCR protocol.

[0026] The instrument described herein is designed to do PCR geneamplification on up to 96 samples with very tight tolerances oftemperature control across the universe of samples. This means that allsamples go up and down in temperature simultaneously with very littledifference in temperature between different wells containing differentsamples, this being true throughout the polymerase chain reaction cycle.The instrument described herein is also capable of very tight control ofthe reaction mixture concentration through control of the evaporationand condensation processes in each sample well. Further, the instrumentdescribed herein is capable of processing up to 96 samples of 100microliters each from different donor sources with substantially nocross-contamination between sample wells.

[0027] The teachings of the invention herein include a novel method ofheating and cooling an aluminum sample block to thermally cycle samplesin the standard 96-well microtiter plate format with the result thatexcellent sample-to-sample uniformity exists despite rapid thermalcycling rates, noncontrolled varying ambient temperatures and variationsin other operating conditions such as power line voltage and coolanttemperatures.

[0028] The teachings of the invention also contemplate a novel designfor a disposable plastic 96-well microtiter plate for accommodation ofup to 96 individual sample tubes containing DNA for thermal cycling eachsample tube having individual freedom of movement sufficient to find thebest fit with the sample block under downward pressure from a heatedcover. The microtiter plate design, by allowing each tube to find thebest fit, provides high and uniform thermal conductance from the sampleblock to each sample tube even if differing rates of thermal expansionand contraction between the metal of the block and the plastic of thesample tube and microtiter plate structure cause the relativecenter-to-center dimensions of the wells in the sample block to changerelative to the center-to-center distance of the sample tubes in thedisposable microtiter plate structure.

[0029] The teachings of the invention also contemplate a novel methodand apparatus for controlling the PCR instrument which includes theability to continuously calculate and display the temperature of thesamples being processed without directly measuring these temperatures.These calculated temperatures are used to control the time that thesamples are held within the given temperature tolerance band for eachtarget temperature of incubation. The control system also controls athree-zone heater thermally coupled to the sample block and gates fluidflow through directionally interlaced ramp cooling channels in thesample block which, when combined with a constant bias cooling flow ofcoolant through the sample block provides a facility to achieve rapidtemperature changes to and precise temperature control at targettemperatures specified by the user. The method and apparatus forcontrolling the three-zone heater includes an apparatus for taking intoaccount, among other things, the line voltage, block temperature,coolant temperature and ambient temperature in calculating the amount ofelectrical energy to be supplied to the various zones of the three-zoneheater. This heater has zones which are separately controllable underthe edges or “guard bands” of the sample block so that excess heatlosses to the ambient through peripheral equipment attached to the edgesof the sample block can be compensated. This helps prevent thermalgradients from forming.

[0030] The teachings of the invention also contemplate a novel methodand apparatus for preventing loss of solvent from the reaction mixtureswhen the samples are being incubated at temperatures near their boilingpoint. A heated platen covers the tops of the sample tubes and is incontact with an individual cap which provides a gas-tight seal for eachsample tube. The heat from the platen heats the upper parts of eachsample tube and the cap to a temperature above the condensation pointsuch that no condensation and refluxing occurs within any sample tube.Condensation represents a relatively large heat transfer since an amountof heat equal to the heat of vaporization is given up when water vaporcondenses. This could cause large temperature variations from sample tosample if the condensation does not occur uniformly. The heated platenprevents any condensation from occurring in any sample tube therebyminimizing this source of potential temperature errors. The use of theheated platen also reduces reagent consumption.

[0031] Furthermore, the heated platen provides a downward force for eachsample tube which exceeds an experimentally determined minimum downwardforce necessary to keep all sample tubes pressed firmly into thetemperature controlled sample block so as to establish and maintainuniform block-to-tube thermal conductance for each tube. This uniformityof thermal conductance is established regardless of variations from tubeto tube in length, diameter, angle or other dimensional errors whichotherwise could cause some sample tubes to fit more snugly in theircorresponding sample wells than other sample tubes.

[0032] The heated platen softens the plastic of each cap but does nottotally destroy the cap's elasticity. Thus, a minimum threshold downwardforced is successfully applied to each tube despite differences in tubeheight from tube to tube.

[0033] The PCR instrument described herein reduces cycle times by afactor of 2 or more and lowers reagent cost by accommodating PCR volumesdown to 20 ul but remains compatible with the industry standard 0.5 mlmicrocentrifuge tube.

BRIEF DESCRIPTION OF THE DRAWINGS

[0034]FIG. 1 is a block diagram of the thermal cycler according to theteachings of the invention.

[0035]FIG. 2 is a plan view of a sample block according to the teachingsof the invention.

[0036]FIG. 3 is a side, elevation view of the sample block showing thebias and ramp cooling channels.

[0037]FIGS. 4 and 5 are end, elevation views of the sample block.

[0038]FIG. 4.1 is an elevation view of the edge of an alternate sampleblock.

[0039]FIG. 6 is a sectional view of the sample block taken along sectionline 6-6 in FIG. 2.

[0040]FIG. 7 is a sectional view of the sample block taken along sectionline 7-7 in FIG. 2.

[0041]FIG. 8 is a sectional view of the sample block taken along sectionline 8-8 in FIG. 2.

[0042]FIG. 9 is a cross-sectional, elevation view of the sample blockstructure after assembly with the three-zone film heater and blocksupport.

[0043]FIG. 10 is a graph of power line voltage illustrating the form ofpower control to the three-zone film heater.

[0044]FIG. 11 is a temperature graph showing a typical three incubationtemperature PCR protocol.

[0045]FIG. 12 is a cross-sectional view of the sample block illustratingthe local zone concept.

[0046]FIG. 13 is a plan view of the three-zone heater.

[0047]FIG. 14 is a graph of sample temperature versus time illustratingthe effect of an τ of a sample tube seating force F which is too low.

[0048]FIG. 14.1 is a graph of sample temperature versus timeillustrating both the effect of an τ of a sample tube seating force Fwhich is too low, and the block temperature overshoot effectuated byversion 2 of the control software.

[0049]FIG. 15 is a cross-sectional view of a sample tube and cap seatedin the sample block.

[0050]FIG. 16A is a graph of the impulse response of an RC circuit.

[0051]FIG. 16B is a graph of an impulse excitation pulse.

[0052]FIG. 16C is a graph illustrating how the convolution of thethermal impulse response and the temperature history of the block givethe calculated sample temperature.

[0053]FIG. 16D illustrates the electrical analog of the thermal responseof the sample block/sample tube system.

[0054]FIG. 17 illustrates how the calculated temperatures of sixdifferent samples all converge on a target temperature to within about0.5° C. of each other when the constants of proportionality for theequations used to control the three zone heater are properly set.

[0055]FIG. 18 is a graph illustrating how the denaturation targettemperature affects the amount of DNA generated.

[0056]FIG. 19 is a cross-sectional view of the sliding cover and heatedplaten.

[0057]FIG. 20 is perspective view of the sliding cover, sample block andthe knob used to lower the heated platen.

[0058]FIG. 21A is a cross-sectional view of the assembly of oneembodiment of the frame, retainer, sample tube and cap when seated on asample block.

[0059]FIG. 21B is a cross-sectional view of the assembly of thepreferred embodiment of the frame, retainer, sample tube and cap whenseated on the sample block.

[0060]FIG. 22 is a top, plan view of the plastic, disposable frame forthe microtiter plate.

[0061]FIG. 23 is a bottom, plan view of the frame.

[0062]FIG. 24 is an end, elevation view of the frame.

[0063]FIG. 25 is another end, elevation view of the frame.

[0064]FIG. 26 is a cross-sectional view of the frame taken along sectionline 26-26 in FIG. 22.

[0065]FIG. 27 is a cross-sectional view of the frame taken along sectionline 27-27 in FIG. 22.

[0066]FIG. 28 is an edge elevation view and partial section of theframe.

[0067]FIG. 29 is a sectional view of the preferred sample tube.

[0068]FIG. 30 is a sectional view of the upper part of the sample tube.

[0069]FIG. 31 is an elevation view of a portion of the cap strip.

[0070]FIG. 32 is a top view of a portion of the cap strip.

[0071]FIG. 33 is a top, plan view of the plastic, disposable retainerportion of the 96 well microtiter tray.

[0072]FIG. 34 is a side, elevation view with a partial section of theretainer.

[0073]FIG. 35 is an end, elevation view of the retainer.

[0074]FIG. 36 is a sectional view of the retainer taken along sectionline 36-36 in FIG. 33.

[0075]FIG. 37 is a sectional view of the retainer taken along sectionline 37-37 in FIG. 33.

[0076]FIG. 38 is a plan view of the plastic disposable support base ofthe 96 well microtiter tray.

[0077]FIG. 39 is a bottom plan view of the base.

[0078]FIG. 40 is a side elevation view of the base.

[0079]FIG. 41 is an end elevation view of the base.

[0080]FIG. 42 is a sectional view of the support base taken alongsection line 42-42 in FIG. 38.

[0081]FIG. 43 is a sectional view of the support base taken alongsection line 43-43 in FIG. 38.

[0082]FIG. 44 is a section view of the base taken along section line44-44 in FIG. 38.

[0083]FIG. 45 is a perspective exploded view of the plastic disposableitems that comprise the microtiter tray with some sample tubes and capsin place.

[0084]FIG. 46 is a diagram of the coolant control system 24 in FIG. 1.

[0085]FIGS. 47A and 47B are a block diagram of th control electronicsaccording to the teachings of the invention.

[0086]FIG. 48 is a schematic of a typical zener temperature sensor.

[0087]FIG. 49 is a time line diagram of a typical sample period.

[0088]FIG. 50 is elevation sectional view of a tall thin walled sampletube marketed under the trademark MAXIAMP.

[0089]FIG. 51 is a graph showing the difference in response time betweenthe thin walled sample tubes and the thick walled prior art tubes.

[0090]FIG. 52 is a plan view of a sample tube and cap.

[0091]FIGS. 53 and 54 are flow charts of the power up test sequence.

[0092]FIG. 55 is a flow diagram representing the Power-Up sequence as itis implemented in Version 2 of the Electronics and Software.

[0093]FIG. 56 consists of user interface screens produced by Version 1of the Electronics and Software.

[0094]FIG. 57 consists of user interface screens produced by Version 2of the Electronics and Software.

DETAILED DESCRIPTION OF THE INVENTION

[0095] Referring to FIG. 1 there is shown a block diagram of the majorsystem components of one embodiment of a computer directed instrumentfor performing PCR according to the teachings of the invention. Samplemixtures including the DNA or RNA to be amplified are placed in thetemperature-programmed sample block 12 and are covered by heated cover14.

[0096] A user supplies data defining time and temperature parameters ofthe desired PCR protocol via a terminal 16 including a keyboard anddisplay. The keyboard and display are coupled via bus 18 to a controlcomputer 20 (hereafter sometimes referred to as a central processingunit or CPU). This central processing unit 20 includes memory whichstores the control program described below, the data defining thedesired PCR protocol and certain calibration constants described below.The control program causes the CPU 20 to control temperature cycling ofthe sample block 12 and implements a user interface which providescertain displays to the user and which receives data entered by the uservia the keyboard of the terminal 16.

[0097] In the preferred embodiment, the central processing unit 20 iscustom designed. The wiring diagrams for the CPU and support electronicsis given in Microfiche Appendix E. The actual control program is givenbelow in Microfiche Appendix C (Version 2 of the control program isincluded as Microfiche Appendix F). A block diagram of the electronicswill be discussed in more detail below. In alternative embodiments, thecentral processing unit 20 and associated peripheral electronics tocontrol the various heaters and other electromechanical systems of theinstrument and read various sensors could be any general purposecomputer such as a suitably programmed personal computer ormicrocomputer.

[0098] The samples 10 are stored in capped disposable tubes which areseated in the sample block 12 and are thermally isolated from theambient air by a heated cover 14 which contacts a plastic disposabletray to be described below to form a heated, enclosed box in which thesample tubes reside. The heated cover serves, among other things, toreduce undesired heat transfers to and from the sample mixture byevaporation, condensation and refluxing inside the sample tubes. It alsoreduces the chance of cross contamination by keeping the insides of thecaps dry thereby preventing aerosol formation when the tubes areuncapped.

[0099] The heated cover is in contact with the sample tube caps andkeeps them heated to a temperature of approximately 104° C. or above thecondensation points of the various components of the reaction mixture.

[0100] The central processing unit 20 includes appropriate electronicsto sense the temperature of the heated cover 14 and control electricresistance heaters therein to maintain the cover 14 at a predeterminedtemperature. Sensing of the temperature of the heated cover 14 andcontrol of the resistance heaters therein is accomplished via atemperature sensor (not shown) and bus 22.

[0101] A coolant control system 24 continuously circulates a chilledliquid coolant such as a mixture of automobile antifreeze and waterthrough bias cooling channels (not shown) in the sample block 12 viainput tubes 26 and output tube 28. The coolant control system 24 alsocontrols fluid flow through higher volume ramp cooling fluid flow paths(not shown) in the sample block 12. The ramp cooling channels are usedto rapidly change the temperature of the sample block 12 by pumpinglarge volumes of chilled liquid coolant through the block at arelatively high flow rate. Ramp cooling liquid coolant enters the sampleblock 12 through tube 30 and exits the sample block through tube 32. Thedetails of the coolant control system are shown in FIG. 46. The coolantcontrol system will be discussed more fully below in the description ofthe electronics and software of the control system.

[0102] Typically, the liquid coolant used to chill the sample block 12consists mainly of a mixture of water and ethylene glycol. The liquidcoolant is chilled by a heat exchanger 34 which receives liquid coolantwhich has extracted heat from the sample block 12 via input tube 36. Theheat exchanger 34 receives compressed liquid freon refrigerant via inputtube 38 from a refrigeration unit 40. This refrigeration unit 40includes a compressor (not shown), a fan 42 and a fin tube heat radiator44. The refrigeration unit 40 compresses freon gas received from theheat exchanger 34 via tube 46. The gaseous freon is cooled and condensedto a liquid in the fin tube condenser 44. The pressure of the liquidfreon is maintained above its vapor pressure in the fin tube condenserby a flow restrictor capillary tube 47. The output of this capillarytube is coupled to the input of the heat exchanger 34 via tube 38. Inthe heat exchanger, the pressure of the freon is allowed to drop belowthe freon vapor pressure, and the freon expands. In this process ofexpansion, heat is absorbed from the warmed liquid coolant circulatingin the heat exchanger and this heat is transferred to the freon therebycausing the freon to boil. The warmed freon is then extracted from theheat exchanger via tube 46 and is compressed and again circulatedthrough the fin tube condenser 44. The fan 42 blows air through the fintube condenser 44 to cause heat in the freon from tube 46 to beexchanged with the ambient air. As symbolized by arrows 48. Therefrigeration unit 40 should be capable of extracting 400 watts of heatat 30° C. and 100 watts of heat at 10° C. from the liquid coolant tosupport the rapid temperature cycling according to the teachings of theinvention.

[0103] In the preferred embodiment, the apparatus of FIG. 1 is enclosedwithin a housing (not shown). The heat 48 expelled to the ambient air iskept within the housing to aid in evaporation of any condensation whichoccurs on the various tubes carrying chilled liquid coolant or freonfrom one place to another. This condensation can cause corrosion ofmetals used in the construction of the unit or the electronic circuitryand should be removed. Expelling the heat 48 inside the enclosure helpsevaporate any condensation to prevent corrosion.

[0104] After exchanging its heat with the freon, the liquid coolantexits the heat exchanger 34 via tube 50 and reenters the coolant controlsystem where it is gated as needed to the sample block during rapidcooling portions of the PCR cycle defined by data entered by the uservia terminal 16.

[0105] As noted above, the PCR protocol involves incubations at at leasttwo different temperatures and often three different temperatures. Atypical PCR cycle is shown in FIG. 11 with a denaturation incubation 170done at a temperature near 94° C., a hybridization incubation 122 doneat a temperature near room temperature (25° C.-37° C.) and an extensionincubation 174 done at a temperature near 50° C. These temperatures aresubstantially different, and, therefore means must be provided to movethe temperature of the reaction mixture of all the samples rapidly fromone temperature to another. The ramp cooling system is the means bywhich the temperature of the sample block 12 is brought down rapidlyfrom the high temperature denaturation incubation to the lowertemperature hybridization and extension incubation temperatures.Typically the coolant temperature is in the range from 10-20° C. Whenthe coolant is at 20° C. it can pump out about 400 watts of heat fromthe sample block. Typically the ramp cooling channel dimensions, coolanttemperature and coolant flow rate are set such that peak cooling of5°-6° C. per second can be achieved near the high end of the operatingrange (100° C.) and an average cooling rate of 2.5° C. per second isachieved in bringing the sample block temperature down from 94° C. to37° C.

[0106] The ramp cooling system, in some embodiments, may also be used tomaintain the sample block temperature at or near the target incubationtemperature also. However, in the preferred embodiment, smalltemperature changes of the sample block 12 in the downward direction tomaintain target incubation temperature are implemented by the biascooling system.

[0107] As seen in FIG. 46, a pump 41 constantly pumps coolant from afilter/reservoir 39 (130 milliliter capacity) via ½″ pipe and pumps itvia a ½″ pipe to a branching intersection 47. The pump 41 suppliescoolant to pipe 45 at a constant flow rate of 1-1.3 gallons per minute.At the intersection 47, a portion of the flow in tube 45 is diverted asthe constant flow through the bias cooling channels 49. Another portionof the flow in tube 45 is diverted through a flow restrictor 51 tooutput tube 38. Flow restrictor 51 maintains sufficient pressure in thesystem such that a positive pressure exists at the input 53 of a twostate solenoid operated valve 55 under the control of the CPU via bus54. When ramp cooling is desired to implement a rapid downwardtemperature change, the CPU 20 causes the solenoid operated valve 55 toopen to allow flow of coolant through the ramp cooling channels 57.There are 8 ramp cooling channels so the flow rate through each rampcooling channel is about ⅛ gallon per minute. The flow rate through thebias cooling channels is much less because of the greatly restrictedcross-sectional area thereof.

[0108] The bias cooling system provides a small constant flow of chilledcoolant through bias cooling channels 49 in the sample block 12. Thiscauses a constant, small heat loss from the sample block 12 which iscompensated by a multi-zone heater 156 which is thermally coupled to thesample block 12 for incubation segments where the temperature of thesample block is to maintained at a steady value. The constant small heatloss caused by the bias cooling flow allows the control system toimplement proportional control both upward and downward in temperaturefor small temperatures. This means both heating and cooling atcontrolled, predictable, small rates is available to the temperatureservo system to correct for block temperature errors to cause the blocktemperature to faithfully track a PCR temperature profile entered by theuser. The alternative would be to cut off power to the film heater andallow the sample block to cool by giving up heat to the ambient byradiation and convection when the block temperature got too high. Thiswould be too slow and too unpredictable to meet tight temperaturecontrol specifications for quantitative PCR cycling.

[0109] This multi-zone heater 156 is controlled by the CPU 20 via bus 52in FIG. 1 and is the means by which the temperature of the sample block12 is raised rapidly to higher incubation temperatures from lowerincubation temperatures and is the means by which bias cooling iscompensated and temperature errors are corrected in the upward directionduring temperature tracking and control during incubations.

[0110] In alternative embodiments, bias cooling may be eliminated or maybe supplied by other means such as by the use of a cooling fan andcooling fins formed in the metal of the sample block, peltier junctionsor constantly circulating tap water. Care must be taken however in thesealternative embodiments to insure that temperature gradients are notcreated in the sample block which would cause the temperature of somesamples to diverge from the temperature of other samples therebypossibly causing different PCR amplification results in some sampletubes than in others. In the preferred embodiment, the bias cooling isproportional to the difference between the block temperature and thecoolant temperature.

[0111] The CPU 20 controls the temperature of the sample block 12 bysensing the temperature of the metal of the sample block via temperaturesensor 21 and bus 52 in FIG. 1 and by sensing the temperature of thecirculating coolant liquid via bus 54 and a temperature sensor in thecoolant control system. The temperature sensor for the coolant is shownat 61 in FIG. 46. The CPU also senses the internal ambient airtemperature within the housing of the system via an ambient airtemperature sensor 56 in FIG. 1. Further, the CPU 20 senses the linevoltage for the input power on line 58 via a sensor symbolized at 63.All these items of data together with items of data entered by the userto define the desired PCR protocol such as target temperatures and timesfor incubations are used by a control program to be described in moredetail below. This control program calculates the amount of power toapply to the various zones of the multi-zone sample block film heater156 via the bus 52 and generates a coolant control signal to open orclose the solenoid operated valve 55 in the coolant control system 24via bus 54 so as to cause the temperature of the sample block to followthe PCR protocol defined by data entered by the user.

[0112] Referring to FIG. 2, there is shown a top view of the sampleblock 12. The purpose of the sample block 12 is to provide a mechanicalsupport and heat exchange element for an array of thin walled sampletubes where heat may be exchanged between the sample liquid in eachsample tube and liquid coolant flowing in the bias cooling and rampcooling channels formed in the sample block 12. Further, it is thefunction of the sample block 12 to provide this heat exchange functionwithout creating large temperature gradients between various ones of thesample wells such that all sample mixtures in the array experience thesame PCR cycle even though they are spatially separated. It is anoverall objective of the PCR instrument described herein to provide verytight temperature control over the temperature of the sample liquid fora plurality of samples such that the temperature of any sample liquiddoes not vary appreciably (approximately plus or minus 0-5° C.) from thetemperature of any other sample liquid in another well at any point inthe PCR cycle.

[0113] There is an emerging branch of PCR technology called“quantitative” PCR. In this technology, the objective is to perform PCRamplification as precisely as possible by causing the amount of targetDNA to exactly double on every cycle. Exact doubling on every cycle isdifficult or impossible to achieve but tight temperature control helps.

[0114] There are many sources of errors which can cause a failure of aPCR cycle to exactly double the amount of target DNA (hereafter DNAshould be understood as also referring to RNA) during a cycle. Forexample, in some PCR amplifications, the process starts with a singlecell of target DNA. An error that can easily occur results when thissingle cell sticks to the wall of the sample tube and does not amplifyin the first several cycles.

[0115] Another type of error is the entry of a foreign nuclease into thereaction mixture which attacks the “foreign” target DNA. All cells havesome nonspecific nuclease that attacks foreign DNA that is loose in thecell. When this happens, it interferes with or stops the replicationprocess. Thus, if a drop of saliva or a dandruff particle or materialfrom another sample mixture were inadvertently to enter a samplemixture, the nuclease materials in these cells could attack the targetDNA and cause an error in the amplification process. It is highlydesirable to eliminate all such sources of cross-contamination.

[0116] Another source of error is nonprecise control over sample mixturetemperature as between various ones of a multiplicity of differentsamples. For example, if all the samples are not precisely controlled tohave the proper annealing temperature (a user selected temperatureusually in the range from 50 to 60° C.) for the extension incubationcertain forms of DNA will not extend properly. This happens because theprimers used in the extension process anneal to the wrong DNA if thetemperature is too low. If the annealing temperature is too high, theprimers will not anneal to the target DNA at all.

[0117] One can easily imagine the consequences of performing the PCRamplification process inaccurately when PCR amplification is part ofdiagnostic testing such as for the presence HIV antibodies, hepatitis,or the presence of genetic diseases such as sickle cell anemia, etc. Afalse positive or false negative result in such diagnostic testing canhave disastrous personal and legal consequences. Accordingly, it is anobject for the design of the PCR instrument described herein toeliminate as many of these sources of possible errors as possible suchas cross-contamination or poor temperature control while providing aninstrument which is compatible with the industry standard 96-wellmicrotiter plate format. The instrument must rapidly perform PCR in aflexible manner with a simple user interface.

[0118] In the preferred embodiment, the sample block 12 is machined outof a solid block of relatively pure but corrosion resistant aluminumsuch as the 6061 aluminum alloy. Machining the block structure out of asolid block of aluminum results in a more thermally homogeneousstructure. Cast aluminum structures tend not to be as thermallyhomogenous as is necessary to meet the very tight desired temperaturecontrol specifications.

[0119] Sample block 12 is capable of rapid changes in temperaturebecause the thermal mass of the block is kept low. This is done by theformation in the block of many cooling passageways, sample wells,grooves and other threaded and unthreaded holes. Some of these holes areused to attach the block to supports and to attach external devices suchas manifolds and spillage trays thereto.

[0120] To best appreciate the “honeycomb” nature of the sample blockstructure, the reader should refer simultaneously to FIG. 2 which showsthe block in plan view as well as FIGS. 3 through 8 which show elevationviews and strategically located sectional views of the sample block. Forexample, FIG. 3 is a side elevation view showing the cooling channelpositions taken from the vantage point of the view line 3-3′ in FIG. 2.The elevation view of the sample block 12, looking at the opposite edge,is identical. FIG. 4 is an elevation view of the edge of the sampleblock 12 from the perspective of view line 4-4′ in FIG. 2. FIG. 5 is anelevation view of the end of the sample block 12 taken from theperspective of view line 5-5′ in FIG. 2. FIG. 6 is a sectional view ofthe sample block 12 taken along the section line 6-6′ in FIG. 2. FIG. 7is a sectional view of the sample block 12 taken along section line 7-7′in FIG. 2. FIG. 8 is a sectional view of the sample block 12 taken alongsection line 8-8′ in FIG. 2.

[0121] The top surface of the sample block 12 is drilled with an 8 x 12array of conical sample wells of which wells 66 and 68 are typical. Theconical configuration of each sample well is best seen if FIG. 8. Thewalls of each sample well are drilled at an angle of 17° to match theangle of the conical section of each sample tube. This is done bydrilling a pilot hole having the diameter D_(w) in FIG. 8. Then a 17°countersink is used to form the conical walls 67.

[0122] The bottom of each sample well includes a sump 70 which has adepth which exceeds the depth of penetration of the tip of the sampletube. The sump 70 is created by the pilot hole and provides a small openspace beneath the sample tube when the sample tube is seated in thecorresponding sample well. This sump provides a space for liquid such ascondensation that forms on the well walls to reside without interferingwith the tight fit of each sample tube to the walls of the sample well.This tight fit is necessary to insure that the thermal conductance fromthe well wall to the sample liquid is uniform and high for each sampletube. Any contamination in a well which causes a loose fit for one tubewill destroy this uniformity of thermal conductance across the array.That is, because liquid is substantially incompressible at the pressuresinvolved in seating the sample tubes in the sample wells, if there wereno sump 70, the presence of liquid in the bottom of the sample wellcould prevent a sample tube from fully seating in its sample well.Furthermore, the sump 70 provides a space in which a gaseous phase ofany liquid residing in the sump 70 can expand during high temperatureincubations such that large forces of such expansion which would bepresent if there were no sump 70 are not applied to the sample tube topush the tube out of flush contact with the sample well.

[0123] It has been found experimentally that it is important for eachsample tube to be in flush contact with its corresponding sample welland that a certain minimum threshold force be applied to each sampletube to keep the thermal conductivity between the walls of the samplewell and the reaction mixture uniform throughout the array. This minimumthreshold seating force is shown as the force vector F in FIG. 15 and isa key factor in preventing the thermal conductivity through the walls ofone sample tube from being different than the thermal conductivitythrough the walls of another sample tube located elsewhere in the block.The minimum threshold seating force F is 30 grams and the preferredforce level is between 50 and 100 grams.

[0124] The array of sample wells is substantially completely surroundedby a groove 78, best seen in FIGS. 2, 6 and 8, which as two functions.The main function is to reduce the thermal conductivity from the centralarea of the sample block to the edge of the block. The groove 78 extendsabout ⅔ through the thickness of the sample block. This groove minimizesthe effects of unavoidable thermal gradients caused by the necessarymechanical connections to the block of the support pins, manifolds, etc.A secondary function is to remove thermal mass from the sample block 12so as to allow the temperature of the sample block 12 to be altered morerapidly and to simulate a row of wells in the edge region called the“guard band”. The amount of metal removed by the portion of the groove78 between points 80 and 82 in FIG. 2 is designed to be substantiallyequal to the amount of metal removed by the adjacent column of eightsample wells 83 through 90. The purpose of this is to match the thermalmass of the guard band to the thermal mass of the adjacent “local zone”,a term which will be explained more fully below.

[0125] Referring specifically to FIGS. 3, 6 and 8, there is shown thenumber and relative positions of the various bias cooling and rampcooling channels which are formed in the metal of the sample block 12.There are nine bias cooling channels marked with reference numerals 91through 99. Likewise, there are eight ramp cooling channels marked withreference numerals 100 through 107.

[0126] Each of these bias cooling and ramp cooling channels is gundrilled through the aluminum of the sample block. The gun drillingprocess is well known and provides the ability to drill a long, verystraight hole which is as close as possible to the bottom surface 110 ofthe sample block 12. Since the gun drilling process drills a straighthole, this process is preferred so as to prevent any of the bias coolingor ramp cooling channels from straying during the drilling process andpenetrating the bottom surface 110 of the sample block or otherwisealtering its position relative to the other cooling channels. Suchmispositioning could cause undesirable temperature gradients byupsetting the “local balance” and “local symmetry” of the local zones.These concepts are explained below, but for now the reader shouldunderstand that these notions and the structures which implement themare key to achieving rapid temperature cycling of up to 96 sampleswithout creating excessive temperature errors as between differentsample wells.

[0127] The bias cooling channels 91 through 99 are lined with siliconerubber in the preferred embodiment to reduce the thermal conductivityacross the wall of the bias cooling channel. Lowering of the thermalconductivity across the channel wall in the bias cooling channels ispreferred so as to prevent too rapid of a change in temperature of thesample block 12 when the multi-zone heater 156 is turned off and heatloss from the sample block 12 is primarily through the bias coolingchannels. This is the situation during the control process carried outwhen the sample block temperature has strayed slightly above the desiredtarget incubation temperature and the control system is attempting tobring the sample block temperature back down to the user's specifiedincubation temperature. Too fast a cooling rate in this situation couldcause overshoot of the desired incubation temperature before the controlsystem's servo feedback loop can respond although a “controlledovershoot” algorithm is used as will be described below. Since the blocktemperature servo feedback loop has a time constant for reacting tostimuli, it is desirable to control the amount of heating and coolingand the resulting rate of temperature change of the sample block suchthat overshoot is minimized by not changing the sample block temperatureat a rate faster than the control system can respond to temperatureerrors.

[0128] In the preferred embodiment, the bias cooling channels are 4millimeters in diameter, and the silicone rubber tube has a onemillimeter inside diameter and a 1.5 millimeter wall thickness. Thisprovides a bias cooling rate of approximately 0.2° C. per second whenthe block is at the high end of the operating range, i.e., near 100° C.,and a bias cooling rate of approximately 0.1° C. per second when thesample block 12 is at a temperature in the lower end of the operatingrange. The coolant control system 24 in FIG. 1 causes a flow rate forcoolant in the bias cooling channels of approximately {fraction(1/20)}th to {fraction (1/30)}th of the flow rate for liquid coolantthrough the ramp cooling channels, 100 through 107. The bias cooling andramp cooling channels are the same size, i.e., 4 millimeters indiameter, and extend completely through the sample block 12.

[0129] The bias cooling channels are lined by inserting a stiff wirewith a hook at the end thereof through the bias cooling channel andhooking it through a hole in the end of a silicone rubber tube which hasan outside diameter which is slightly greater than 4 millimeters. Thehook in the wire is then placed through the hole in the silicone rubbertube, and the silicone tube is pulled through the bias cooling channeland cut off flush with the end surfaces of the sample block 12.

[0130] Threaded holes 108 through 114 are used to bolt a coolantmanifold to each side of the sample block 12. There is a coolantmanifold bolted to each end of the block. These two coolant manifoldsare coupled to the coolant channels 26, 28, 30 and 32 in FIG. 1, and areaffixed to the sample block 12 with a gasket material (not shown)interposed between the manifold and the sample block metal. This gasketprevents leaks of coolant and limits the thermal conductivity betweenthe sample block 12 and the manifold which represents a heat sink.Preferably, the gasket material is ethylene propylene. Any gasketmaterial which serves the above stated purposes will suffice forpracticing the invention.

[0131] The positions of the bias cooling and ramp cooling channelsrelative to the position of the groove 78 are best seen in the sectionalview of FIG. 6. The positions of the bias cooling and ramp coolingchannels relative to the positions of the sample wells is best seen inFIG. 8. The bias cooling and ramp cooling channels are generallyinterposed between the positions of the tips of the sample wells.Further, FIG. 8 reveals that the bias cooling and ramp cooling channelssuch as channels 106 and 97 cannot be moved in the positive z directionvery far without risking penetration of the walls of one or more samplew lls. Likewise, the cooling channels cannot be moved in the negative zdirection very far without creating the possibility of penetrating thebottom surface 116 of the sample block 12. For clarity, the positions ofthe bias and ramp cooling channels are not shown in hidden lines in FIG.2 relative to the positions of the sample wells and other structures.However, there is either a bias cooling channel or a ramp coolingchannel between every column of sample wells.

[0132] Referring to FIG. 2, the holes 118, 119, 120 and 121 are threadedand are used to attach the sample block 12 to machinery used to machinethe various holes and grooves formed therein. In FIGS. 2, 4 and 5, theholes 124, 125, 126 and 127 are used to attach the sample block 12 to asupport bracket shown in FIG. 9 to be described in more detail below.Steel bolts extend through this support bracket into the threaded holes124 through 127 to provide mechanical support of the sample block 12.These steel bolts also represent heat sinks or heat sources which tendto add thermal mass to the sample block 12 and provide additionalpathways for transfer of thermal energy between the sample block 12 andthe surrounding environment. These support pins and the manifolds aretwo important factors in creating the need for the guard bands toprevent the thermal energy transferred back and forth to theseperipheral structures from affecting these sample temperatures.

[0133] Referring to FIG. 5, the holes 128, 130 and 132 are mountingholes for an integrated circuit temperature sensor (not shown) which isinserted into the sample block through hole 128 and secured thereto bybolts which fasten to threaded holes 130 and 132. The extent ofpenetration of the hole 128 and the relative position of the temperaturesensor to the groove 78 and the adjacent column of sample wells is bestseen in FIG. 2.

[0134] Referring to FIG. 2, holes 134 through 143 are mounting holeswhich are used to mount a spill collar 147 (not shown). This spillcollar 147 is shown in FIG. 19 detailing the structure of the heatedplaten 14, sliding cover 316 and lead screw assembly 312. The purpose ofthe spill collar is to prevent any liquid spilled from the sample tubesfrom getting inside the instrument casing where it could causecorrosion.

[0135] Referring to FIG. 9, there is shown in cross-section a view ofthe support system and multi-zone heater 156 configuration for thesample block 12. The sample block 12 is supported by four bolts of whichbolt 146 is typical. These four bolts pass through upright members of asteel support bracket 148. Two large coil springs 150 and 152 arecompressed between a horizontal portion of the support bracket 148 and asteel pressure plate 154. The springs 150 and 152 are compressedsufficiently to supply approximately 300 lbs. per square inch of forcein the positive z direction acting to compress a film heater 156 to thebottom surface 116 of the sample block 12. This three layer film heaterstructure is comprised of a multi-zone film heater 156, a siliconerubber pad 158 and a layer of epoxy resin foam 160. In the preferredembodiment the film heater 156 has three separately controllable zones.The purpose of the film heater 156 is to supply heat to the sample block12 under the control of the CPU 20 in FIG. 1. The purpose of thesilicone rubber pad 158 is to lower the thermal conductivity from thefilm heater layer 156 to the structures below. These lower structuresserve as heat sinks and heat sources between which undesired heat energymay be transferred to and from the sample block 12. The silicone rubberpad 158 has the additional function of compensating for surfaceirregularities in the film heater 156 since some film heaters embodynichrome wires and may not be not perfectly flat.

[0136] The purpose of the steel plate 154 and the epoxy resin foam 160is to transfer the force from the springs 150 and 152 to the siliconerubber pad 158 and the multi-zone film heater 156 so as to compress thefilm heater to the bottom surface 116 of the sample block with as flusha fit as possible. The epoxy resin foam should be stiff so as to not becrushed under the force of the springs but it should also be a goodinsulator and should have low thermal mass, i.e., it should be anondense structure. In one embodiment, the foam 160 is manufacturedunder the trademark ECKO foam. In alternative embodiments, otherstructures may be substituted for the silicone rubber layer 158 and/orthe epoxy resin foam layer 160. For example, a stiff honeycomb structuresuch as is used in airplane construction could be placed between thepressure plate 154 and the film heater 156 with insulating layerstherebetween. Whatever structure is used for layers 158 and 160 shouldnot absorb substantial amounts of heat from the sample block 12 whilethe block is being heated and should not transfer substantial amounts ofheat to the sample block 12 when the block is being cooled. Perfectisolation of the block from its surrounding structures however, isvirtually impossible. Every effort should be made in designingalternative structures that will be in contact with the sample block 12so as to thermally isolate the sample block from its environment as muchas possible to minimize the thermal mass of the block and enable rapidtemperature changes of the sample block and the sample mixtures storedtherein.

[0137] Precise temperature control of the sample block temperature isachieved by the CPU 20 in FIG. 1 by controlling the amount of heatapplied to the sample block by the multi-zone film heater 156 in FIG. 9.The film heater is driven using a modified form of pulse widthmodulation. First, the 120 volt waveform from the power line isrectified to preserve only half cycles of the same polarity. Thenportions of each half cycle are gated to the appropriate zones of thefoil heater, with the percentage of each half cycle which is applied tothe various zones of the foil heater being controlled by the CPU 20.

[0138]FIG. 10 illustrates one embodiment of a power control concept forthe film heater 156. FIG. 10 is a diagram of the voltage waveform of thesupply line voltage. Rectification to eliminate the negative half cycle162 occurs. Only positive half cycles remain of which half cycle 164 istypical. The CPU 20 and its associated peripheral electronic circuitrythen controls the portion of each half cycle which is applied to thevarious zones of the film heater 156 by selecting a portion of each halfcycle to apply according to a power level computed for each zone basedupon equations given below for each zone. That is, the dividing line 166is moved forward or backward along the time axis to control the amountof power to the film heater based upon a number of factors which arerelated in a special equation for each zone. The cross-hatched areaunder the positive half cycle 164 represents the amount of power appliedto the film heater 156 for the illustrated position of the dividing line166. As the dividing line 166 is moved to the right, more power isapplied to the film heater, and the sample block 12 gets hotter. As thedividing line is moved to the left along the time axis, thecross-hatched area becomes smaller and less power is applied to the filmheater. How the CPU 20 and its associated software and peripheralcircuitry control the temperature of block 12 will be described in moredetail below.

[0139] The amount of power supplied to the film heater is continuouslyvariable from 0 to 600 watts. In alternative embodiments, the amount ofpower supplied to the film heater 156 can be controlled using otherschemes such as computer control over the current flow through orvoltage applied to a DC film heater or by the zero crossing switchingscheme described below.

[0140] In other embodiments, heating control of the sample block 12 maybe performed by control over the flow rate and/or temperature of hotgases or hot liquid which is gated through heating control channelswhich are formed through the metal of the sample block 12. Of course insuch alternative embodiments, the number of sample wells in the blockwould have to be reduced since there is no room for additional heatingchannels in the sample block 12 shown in FIGS. 2 through 8. Suchalternative embodiments could still be compatible with the 96-wellmicrotiter plate format if, for example, every other well were removedto make room for a heating channel in the sample block. This wouldprovide compatibility only as to the dimensions of such microtiterplates and not as to the simultaneous processing of 96 differentsamples. Care must be taken to preserve local balance and local symmetryin these alternative embodiments.

[0141] In the embodiment described herein, the maximum power that can bedelivered to the block via the film heater is 1100 watts. Thislimitation arises from the thermal conductivity of the block/heaterinterface. It has been found experimentally that the supply of more thanapproximately 1100 watts to the film heater 156 will frequently causeself-destruction of the device.

[0142] Typical power for heating or cooling when controlling blocktemperatures at or near target incubation temperatures is in the rangeof plus or minus 50 watts.

[0143] Referring to FIG. 11, there is shown a time versus temperatureplot of a typical PCR protocol. Large downward changes in blocktemperature are accomplished by gating chilled liquid coolant throughthe ramp cooling channels while monitoring the sample block temperatureby the temperature sensor 21 in FIG. 1. Typically these rapid downwardtemperature changes are carried out during the ramp following thedenaturation incubation 170 to the temperature of hybridizationincubation 172. Typically, the user must specify the protocol bydefining the temperatures and times in one fashion or another so as todescribe to the CPU 20 the positions on the temperature/time plane ofthe checkpoints symbolized by the circled intersections between the ramplegs and the incubation legs. Generally, the incubation legs are markedwith reference numerals 170, 172 and 174 and the ramps are marked withreference numerals 176, 178 and 180. Generally the incubation intervalsare conducted at a single temperature, but in alternative embodiments,they may be stepped or continuously ramped to different temperatureswithin a range of temperatures which is acceptable for performing theparticular portion of the PCR cycle involved. That is, the denaturationincubation 170 need not be carried out at one temperature as shown inFIG. 11, but may be carried out at any of a plurality of differenttemperatures within the range of temperatures acceptable fordenaturation. In some embodiments, the user may specify the length ofthe ramp segments 176, 178 and 180. In other embodiments, the user mayonly specify the temperature or temperatures and duration of eachincubation interval, and the instrument will then move the temperatureof the sample block as rapidly as possible between incubationtemperatures upon the completion of one incubation and the start ofanother. In the preferred embodiment, the user can also havetemperatures and/or incubation times which are different for each cycleor which automatically increment on every cycle.

[0144] The average power of ramp cooling during a transition from a 95°C. denaturation incubation to a 35° C. hybridization incubation is morethan one kilowatt typically. This results in a temperature change forthe sample block of approximately 4-6° C. per second when the blocktemperature is at the high end of the operating range, and approximately2° C. per second when the block temperature is at the low end of theoperating range. Generally it is desirable to have as high a coolingrate as possible for ramp cooling.

[0145] Because so much heat is being removed from the sample blockduring ramp cooling, temperature gradients across the sample block fromone end of a ramp cooling channel to the other could occur. To preventthis and minimize these types of temperature gradients, the ramp coolingchannels are directionally interlaced. That is, in FIG. 3, the directionof coolant flow through ramp cooling channels 100, 102, 104, and 106 isinto the page as symbolized by the x's inside these ramp cooling channelholes. Ramp cooling liquid flow in interlaced ramp cooling channels 101,103, 105, and 107 is out of the page as symbolized by the single pointsin the center of these ramp cooling channel holes. This interlacing plusthe high flow rate through the ramp cooling channels minimizes anytemperature gradients which might otherwise occur using noninterlacedflow patterns or lower flow rates because the distances between the hotand cold ends of the channels is made smaller. A slower flow rateresults in most or all of the heat being taken from the block in thefirst inch or so of travel which means that the input side of the blockwill be at a lower temperature than the output side of the block. A highflow rate minimizes the temperature gradient along the channel.Interlacing means the hot end of the channels running in one directionare “sandwiched” between the cold ends of channels wherein flow is inthe opposite direction. This is a smaller distance than the length ofthe channel. Thus, temperature gradients are reduced because thedistances heat must travel to eliminate the temperature gradient arereduced. This causes any temperature gradients that form because ofcooling in the ramp channels to be quickly eliminated before they havetime to differentially heat some samples and not others. Withoutinterlacing, one side of the sample block would be approximately 1° C.hotter than the other side. Interlacing results in dissipation of anytemperature gradients that result in less than approximately 15 seconds.

[0146] In order to accurately estimate the amount heat added to orremoved from the block, the CPU 20 measures the block temperature usingtemperature sensor 21 in FIG. 1 and measures the coolant temperature byway of temperature sensor 61 in FIG. 46 coupled to bus 54 in FIG. 1. Theambient air temperature is also measured by way of temperature sensor 56in FIG. 1, and the power line voltage, which controls the power appliedto the film heaters on bus 52, is also measured. The thermal conductancefrom the sample block to ambient and from the sample block to thecoolant are known to the CPU 20 as a result of measurements made duringan initialization process to set control parameters of the system.

[0147] For good temperature uniformity of the sample population, theblock, at constant temperature, can have no net heat flow in or out.However, temperature gradients can occur within the sample block arisingfrom local flows of heat from hot spots to cold spots which have zeronet heat transfer relative to the block borders. For instance, a slab ofmaterial which is heated at one end and cooled at the other is at aconstant average temperature if the net heat flow into the block iszero. However, in this situation a significant temperaturenonuniformity, i.e., a temperature gradient, can be established withinthe slab due to the flow of heat from the hot edge to the cold edge.When heating and cooling of the edges of the block are stopped, the flowof heat from the hot edge to the cold edge eventually dissipates thistemperature gradient and the block reaches a uniform temperaturethroughout which is the average between the hot temperature and cooltemperature at the beginning of heat flow.

[0148] If a slab of cross sectional area A in length L has a uniformthermal conductivity K, and the slab is held at constant averagetemperature because heat influx from a heat source Q_(in) is matched byheat outflow to a heat sink Q_(out), the steady state temperatureprofile which results from the heat flow is: $\begin{matrix}{{{Delta}\quad T} = \frac{Q_{i\quad n}L}{A\quad K}} & (1)\end{matrix}$

[0149] Where,

[0150] Delta T=the temperature gradient

[0151] L=the thermal path length

[0152] A=the area of the thermal path

[0153] K=the thermal conductance through the path

[0154] In general, within any material of uniform thermal conductance,the temperature gradient will be established in proportion to the heatflow per unit area. Heat flow and temperature nonuniformity are thusintimately linked.

[0155] Practically speaking, it is not possible to control thetemperature of a sample block without some heat flow in and out. Thecold bias control cooling requires some heat flow in from the stripheaters to balance the heat removed by the coolant flowing through thebias cooling channels to maintain the block temperature at a stablevalue. The key to a uniform sample block temperature under theseconditions is a geometry which has “local balance” and “local symmetry”of heat sources and heat sinks both statically and dynamically, andwhich is arranged such that any heat flow from hot spots to cold spotsoccurs only over a short distance.

[0156] Stated briefly, the concept of “static local balance” means thatin a block at constant temperature where the total heat input equals thetotal heat output, the heat sources and heat sinks are arranged suchthat within a distinct local region, all heat sources are completelybalanced by heat sinks in terms of heat flows ink and heat flows out ofthe block. Therefore, each local region, if isolated, would bemaintained at a constant temperature.

[0157] The concept of “static local symmetry” means that, within a localregion and for a constant temperature, the center of mass of heatsources is coincident with the center of mass of heat sinks. If thiswere not the case, within each local region, a temperature gradientacross each local region can exist which can add to a temperaturegradient in an adjacent local region thereby causing a gradient acrossthe sample block which is twice as large as the size of a single localregion because of lack of local symmetry even though local balancewithin each local region exists. The concepts of local balance and localsymmetry are important to the achievement of a static temperaturebalance where the temperature of the sample block is being maintained ata constant level during, for example, an incubation interval.

[0158] For the dynamic case where rapid temperature changes in thesample block are occurring, the thermal mass, or heat capacity of eachlocal region becomes important. This is because the amount of heat thatmust flow into each local region to change its temperature isproportional to the thermal mass of that region.

[0159] Therefore, the concept of static local balance can be expanded tothe dynamic case by requiring that if a local region includes x percentof the total dynamic heat source and heat sink, it must also include xpercent of the thermal mass for “dynamic local balance” to exist.Likewise, “dynamic local symmetry” requires that the center of mass ofheat capacity be coincident with the center of mass of dynamic heatsources and sinks. What this means in simple terms is that the thermalmass of the sample block is the metal thereof, and the machining of thesample block must be symmetrical and balanced such that the total massof metal within each local zone is the same. Further, the center of massof the metal in each local zone should be coincident with the center ofmass of the dynamic heat sources and sinks. Thus, the center of mass ofthe multi-zone heater 156, i.e., its geometric center, and the geometriccenter of the bias and ramp cooling channels must coincide. From a studyof FIGS. 2-9, it will be seen from the detailed discussion b low thatboth static and dynamic local balance and local symmetry exist in sampleblock 12.

[0160]FIG. 32 illustrates two local regions side by side for the designof the sample block 12 according to the teachings of the invention. InFIG. 12, the boundaries of two local regions, 200 and 202, are marked bydashed lines 204, 206 and 208. FIG. 12 shows that each local regionwhich is not in the guard band is comprised of: two columns of samplewells; a portion of the foil heater 156 which turns out to be ⅛th of thetotal area of the heater; one ramp cooling channel such as ramp coolingchannels 210 and 212; and, one bias cooling channel. To preserve localsymmetry, each local region is centered on its ramp cooling channel andhas one-half of a bias cooling channel at each boundary. For example,local region 200 has a center over the ramp cooling channel 210 and biascooling channels 214 and 216 are dissected by the local regionboundaries 204 and 206, respectively. Thus the center of mass of theramp cooling channel (the middle thereof), coincides (horizontally) withthe center of mass of the bias cooling channels (the center of the localregion) and with the center of mass of the film heater portion coupledto each local region. Static local balance will exist in each localregion when the CPU 20 is driving the film heater 156 to input an amountof heat energy that is equal to the amount of heat energy that is beingremoved by the ramp cooling and bias cooling channels. Dynamic localbalance for each local region exists because each local region in thecenter portion of the block where the 96 sample mixtures reside containsapproximately ⅛th the total thermal mass of the entire sample block,contains ⅛th of the total number of ramp cooling channels and contains⅛th of the total number of bias cooling channels. Dynamic local symmetryexists for each local region, because the center of mass of the metal ofeach local region is horizontally coincident with: the center of filmheater portion underlying the local region; the center of the rampcooling channel; and, the center of mass of the two half bias coolingchannels.

[0161] By virtue of these physical properties characterized as staticand dynamic local balance and local symmetry, the sample block heats andcools all samples in the population much more uniformly than prior artthermal cyclers.

[0162] Referring to FIG. 2, the plan view of the boundaries of the localregions are illustrated by dashed lines 217 through 225. Inspection ofFIG. 2 reveals that the central region of the 96 sample wells aredivided into six adjacent local regions bounded by boundaries 218through 224. In addition, two guard band local regions are added at eachedge. The edge local region (local regions are sometimes herein alsocalled local zones) having the most negative x coordinate is bounded byboundary lines 217 and 218. The edge local region having the mostpositive x coordinate is bounded by boundary lines 224 and 225. Notethat the edge local regions contain no sample well columns but docontain the groove 78 simulating a column of wells. The depth and widthof the groove 78 is designed to remove the same metal mass as a columnof wells thereby somewhat preserving dynamic local symmetry. The edgelocal zones are therefore different in thermal mass (they also haveadditional thermal mass by virtue of the external connections such asmanifolds and support pins) than the six local zones in the central partof the sample block. This difference is accounted for by heating theedge local zones or guard bands with separately controllable zones ofsaid multizone heater so that more energy may be put into the guard bandthan the central zone of the block.

[0163] The local regions at each edge of the block approximate, but donot exactly match the thermal properties of the six centrally locatedlocal regions. The edge local regions are called “guard band” regionsbecause they complete a guard band which runs around the periphery ofthe sample block 12. The purpose of this guard band is to provide somethermal isolation of the central portion of the sample block containingthe 96 sample wells from uncontrolled heat sinks and sources inherentlyembodied in mechanical connections to the block by such things assupport pins, manifolds, drip collars and other devices which must bemechanically affixed to the sample block 12. For example in FIG. 2, theedge surfaces 228 and 230 of the sample block have plastic manifoldsattached thereto which carry coolant to and from the ramp and biascooling passages. The guard band along edges 228 and 230 consists ofportions of the slot 78 which are parallel to and closest to the edges228 and 230. The depth of the groove 78 is such that the bottom of thegroove is as close to the perimeters of the bias and ramp coolingchannels as is possible without actually intersecting them. The width ofthe groove 78 coupled with this depth is such that the volume of metalremoved by the slot 78 between points 82 and 232 in FIG. 2 approximatelyequals the volume of metal removed by the adjacent row of sample wellsstarting with sample well 234 and ending with sample well 83. Also, theslot 78 all around the perimeter of the block is located approximatelywhere such an additional row of wells would be if the periodic patternof sample wells were extended by one row or column of wells in eachdirection.

[0164] Along the edges 250 and 252 where the support connections aremade to the sample block, the guard band local regions contain, inaddition to a portion of the slot 78, the full length of several coolingchannels. Referring to FIG. 3, these include: ½ of a bias coolingchannel (e.g., 92) which merges with the adjacent ½ bias cooling channelof the adjacent local region to form a whole bias cooling channel; aramp cooling channel (e.g., 100); and a whole bias cooling channel(e.g., 91). For the edge local region at edge 250, these coolingchannels are 107, 198 and 99.

[0165] The whole bias cooling channels in the guard bands are slightlydisplaced inward from the edge of the block. The reason that these wholebias cooling channels are used is because a “half” cooling channel isimpractical to build. Since the bias cooling channels require such athick walled rubber lining, it would be difficult to keep a hole througha lining of a “half” bias cooling channel reliably open. This asymmetryin the edge local regions causes a small excess loss of heat to thecoolant from the edge guard band local regions, but it is sufficientlyremote from the central region of the sample block containing the samplewells that its contribution to sample temperature nonuniformities issmall. Also, since the temperature affects of this small asymmetry arepredictable, the effect can be further minimized by the use of aseparately controllable zone of the multi-zone heater system under eachguard band.

[0166] Referring to FIG. 13, there are shown three separately controlledzones within the film heater layer 156 in FIG. 9. These separatelycontrolled zones include edge heater zones which are situated under theguard bands at the exposed edges of the sample block 12 which arecoupled to the support bracket 148. There are also separately controlledmanifold heater zones situated under the guard bands for the edges 228and 230 which are attached to the coolant manifolds. Finally, there is acentral heater zone that underlies the sample wells. The power appliedto each of these zones is separately controlled by the CPU 20 and thecontrol software.

[0167] The film heater 156 is composed of a pattern of electricalconductors formed by etching a thin sheet of metal alloy such asInconel™. The metal alloy selected should have high electricalresistance and good resistance to heat. The pattern of conductors soetched is bonded between thin sheets of an electrically insulatingpolymeric material such as Kapton™. Whatever material is used toinsulate the electrical resistance heating element, the material must beresistant to high temperatures, have a high dielectric strength and goodmechanical stability.

[0168] The central zone 254 of the film heater has approximately thesame dimensions as the central portion of the sample block inside theguard bands. Central region 254 delivers a uniform power density to thesample well area.

[0169] Edge heater regions 256 and 258 are about as wide as the edgeguard bands but are not quite as long.

[0170] Manifold heater regions 260 and 262 underlie the guard bands foredges 228 and 230 in FIG. 2.

[0171] The manifold heater zones 260 and 262 are electrically connectedtogether to form one separately controllable heater zone. Also, the edgeheater sections 256 and 258 are electrically coupled together to form asecond separately controllable heater zone. The third separatelycontrollable heater zone is the central section 254. Each of these threeseparately controllable heater zones has separate electrical leads, andeach zone is controlled by a separate control algorithm which may be runon separate microprocessors or a shared CPU as is done in the preferredembodiment.

[0172] The edge heater zones 254 and 258 are driven to compensate forheat lost to the support brackets. This heat loss is proportional to thetemperature difference between the sample block 12 and the ambient airsurrounding it. The edge heater zones 256 and 258 also compensate forthe excess loss of heat from the sample block to the full bias coolingchannels at each edge of the block. This heat loss is proportional tothe temperature difference between the sample block 12 and the coolantflowing through these bias cooling channels.

[0173] The manifold heater sections 260 and 262 are also driven so as tocompensate for heat lost to the plastic coolant manifolds 266 and 268 inFIG. 13 which are attached to the edges of the sample block 12. Thepower for the manifold heater sections 260 and 262 compensates for heatloss which is proportional mainly to the temperature difference betweenthe sample block and the coolant, and to a lesser degree, between thesample block and the ambient air.

[0174] For practical reasons, it is not possible to match the thermalmass of the guard band local regions with the thermal masses of thelocal regions which include the sample wells overlying central heatersection 254. For example, the plastic coolant manifolds 266 and 268 notonly conduct heat away from the guard band, but they also add a certainamount of thermal mass to the guard band local regions to which they areattached. The result of this is that during rapid block temperaturechanges, the rates of rise and fall of guard band temperature do notexactly match that of the sample well local regions. This generates adynamic temperature gradient between the guard bands and sample wells,which if allowed to become large, could persist for a time which islonger than is tolerable. This temperature gradient effect is roughlyproportional to the rate of change of block temperature and is minimizedby adding or deleting heat from each guard band local zone at a ratewhich is proportional to the rate of change of block temperature.

[0175] The coefficients of proportionality for the guard band zoneheaters are relatively stable properties of the design of the system,and are determined by engineering measurements on prototypes. The valuesfor these coefficients of proportionality are given below in connectionwith the definitions of the terms of Equations (3) through (5). Theseequations define the amounts of power to be applied to the manifoldheater zone, the edge heater zone and the central zone, respectively inan alternative embodiment. The equations used in the preferredembodiment are given below in the description of the software (Equations(46)-(48), power distributed by area).

P _(m) =A _(m) P+K _(m1)(T _(BLK) −T _(AMB))+K _(M2)(T _(BLK) −T_(COOL))+K _(M3)(dt _(BLK) /dt)  (3)

[0176] where,

[0177] P_(m)=power supplied to the manifold heater zones 260 and 262.

[0178] A_(m)=area of the manifold heater zone.

[0179] P=power needed to cause the block temperature to stay at or moveto the desired temperature at any particular time in a PCR thermal cycleprotocol.

[0180] K_(M1)=an experimentally determined constant of proportionalityto compensate for excess heat loss to ambient through the manifolds,equal to 0 watts/degree Kelvin.

[0181] K_(M2)=an experimentally determined constant of proportionalityto compensate for excess heat loss to the coolant, equal to 0.4watts/degree Kelvin.

[0182] K_(M3)=an experimentally determined constant of proportionalityto provide extra power to compensate for additional thermal mass of themanifold edge guard bands caused by the attachment of the plasticmanifolds etc., equal to 66.6 watt-seconds/degree Kelvin.

[0183] T_(BLK)=the temperature of the sample block 12.

[0184] T_(AMB)=the temperature of the ambient air.

[0185] T_(COOL)=the temperature of the coolant.

[0186] dt_(BLK)/dt=the change in sample block temperature per unit time.

P _(E) =A _(E) P+K _(E1)(T _(BLK) −T _(AMB))+K _(E2)(T _(BLK) −T_(COOL))+K _(E3)(dt _(BLK) /dt)  (4)

[0187] where,

[0188] P_(E)=power to be applied to the edge heater zones

[0189] A_(E)=the area of the edge heater zones

[0190] K_(E1)=an experimentally determined constant of proportionalityto compensate for excess heat loss to ambient through th manifolds,equal to 0.5 watts/degree Kelvin.

[0191] K_(E2)=an experimentally determined constant of proportionalityto compensate for excess heat loss to the coolant, equal to 0.15watts/degree Kelvin.

[0192] K_(E3)=an experimentally determined constant of proportionalityto provide extra power to compensate for additional thermal mass of theexposed edge guard bands caused by the attachment of the sample block 12to the support pins and bracket, the temperature sensor etc., equal to15.4 watt-sec/degree Kelvin.

P_(c)=A_(c)P  (5)

[0193] where

[0194] P_(c)=the power to be applied to the central zone 254 of themulti-zone heater.

[0195] A_(c)=the area of the central zone 254.

[0196] In each of Equations (3) through (5), the power term, P is avariable which is calculated by the portion of the control algorithm runby the CPU 20 in FIG. 1 which reads the user defined setpoints anddetermines what to do next to cause the sample block temperature to stayat or become the proper temperature to implement the PCR temperatureprotocol defined by the time and temperature setpoints stored in memoryby the user. The manner in which the setpoints are read and the powerdensity is calculated will be described in more detail below.

[0197] The control algorithm run by CPU 20 of FIG. 1 senses thetemperature of the sample block via temperature sensor 21 in FIG. 1 andFIG. 9 and bus 52 in FIG. 1. This temperature is differentiated toderive the rate of change of temperature of the sample block 12. The CPUthen measures the temperature of the ambient air via temperature sensor56 in FIG. 1 and measures the temperature of the coolant via thetemperature sensor 61 in the coolant control system 24 shown in FIG. 46.The CPU 20 then computes the power factor corresponding to theparticular segment of the PCR protocol being implemented and makes threecalculations in accordance with Equations (3), (4) and (5) by pluggingin all the measured temperatures, the constants of proportionality(which are stored in nonvolatile memory), the power factor P for thatparticular iteration of t he control program and the areas of thevarious heater zones (which are stored in nonvolatile memory). The powerfactor is the total power needed to move the block temperature from itscurrent level to the temperature level specified by the user via asetpoint. More details on the calculations performed by the CPU tocontrol heating and cooling are given below in the description of thecontrol software “PID task”.

[0198] After the required power to be applied to each of the three zonesof the heater 156 is calculated, another calculation is made regardingthe proportion of each half cycle of input powder which is to be appliedto each zone in some embodiments. In the preferred embodiment describedbelow, the calculation mode is how many half cycles of the total numberof half cycles which occur during a 200 millisecond sample period are tobe applied to each zone. This process is described below in connectionwith the discussion of FIGS. 47A and 47B (hereafter referred to as FIG.47) and the “PID Task” of the control software. In the alternativeembodiment symbolized by FIG. 10, the computer calculates for each zone,the position of the dividing line 166 in FIG. 10. After this calculationis performed, appropriate control signals are generated to cause thepower supplies for the multi-zone heater 156 to do the appropriateswitching to cause the calculated amount of power for each zone to beapplied thereto.

[0199] In alternative embodiments, the multi-zone heater can beimplemented using a single film heater which delivers uniform powerdensity to the entire sample block, plus one or two additional filmheaters with only one zone apiece for the guard bands. These additionalheaters are superimposed over the single film heater that covers theentire sample block. In such an embodiment, only the power necessary tomake up the guard band losses is delivered to the additional heaterzones.

[0200] The power factor P in Equations (3) through (5) is calculated bythe CPU 20 for various points on the PCR temperature protocol based uponthe set points and ramp times specified by the user. However, alimitation is imposed based upon the maximum power delivery capabilityof the zone heater mentioned above.

[0201] The constants of proportionality in Equations (3) through (5)must be properly set to adequately compensate for excess heat losses inthe guard band for good temperature uniformity.

[0202] Referring to FIG. 17, there is shown a graph of the differencesbetween calculated sample temperatures for a plurality of differentsample in response to a step change in block temperature to raise thetemperature of the sample block toward a denaturation incubation targettemperature of approximately 94° C. from a substantially lowertemperature. FIG. 17 illustrates the calculated sample liquidtemperatures when the multi-zone heater 156 is properly managed usingthe constants of proportionality given above in the definitions of theterms for Equations (3) through (5). The various wells which were usedto derive the graph of FIG. 17 are indicated thereon by a single letterand number combination. The 8×12 well array showing FIG. 2 is coded bylettered columns and numbered rows. Thus, for example, sample well 90 isalso designated sample well A12, while sample well 89 is also designatedsample well B12. Likewise, sample well 68 is also designated sample wellD6, and so on. Note that the well temperatures settle in asymptoticallyat temperatures which are within approximately 0.5° C. of each otherbecause of the overall thermal design d scribed herein to eliminatetemperature gradients.

[0203] The foregoing description illustrates how the sample blocktemperature may be controlled to be uniform and to be quicklychangeable. However, in the PCR process, it is the temperature of thesample reaction mixture and not the block temperature that is to beprogrammed. In the preferred embodiment according to the teachings ofthe invention, the user specifies a sequence of target temperatures forthe sample liquid itself and specifies the incubation times for thesample liquid at each of these target temperatures for each stage in thePCR process. The CPU then manages the sample block temperature so as toget the sample reaction mixtures to the specified target incubationtemperatures and to hold the sample mixtures at these targettemperatures for the specified incubation times. The user interface coderun by the CPU 20 displays, at all stages of this process, the currentcalculated sample liquid temperature on the display of terminal 16.

[0204] The difficulty with displaying an actual measured sampletemperature is that to measure the actual temperature of the reactionmixture requires insertion of a temperature measuring probe therein. Thethermal mass of the probe can significantly alter the temperature of anywell in which it is placed since the sample reaction mixture in anyparticular well is often only 100 microliters in volume. Thus, the mereinsertion of a temperature probe into a reaction mixture can cause atemperature gradient to exist between that reaction mixture andneighboring mixtures. Since the extra thermal mass of the temperaturesensor would cause the reaction mixture in which it is immersed to lagbehind in temperature from the temperatures of the reaction mixtures inother wells that have less thermal mass, errors can result in theamplification simply by attempting to measure the temperature.

[0205] Accordingly, the instrument described herein calculates thesample temperature from known factors such as the block temperaturehistory and the thermal time constant of the system and displays thissample temperature on the display. It has been found experimentally forthe system described herein that if the sample tubes are pressed downinto the sample wells with at least a minimum threshold force F, thenfor the size and shape of the sample tubes used in the preferredembodiment and the sample volumes of approximately 100 microliters,thermally driven convection occurs within the sample reaction mixtureand the system acts thermally like a single time constant, linearsystem. Experiments have shown that each sample tube must be pushed downwith approximately 50 grams of force for good well-wall-to-liquidthermal conductivity from well to well. The heated platen designdescribed below is designed to push down on each sample tube with about100 grams of force. This minimum force, symbolized by force vector F inFIG. 15, is necessary to insure that regardless of slight differences inexternal dimensions as between various sample tubes and various samplewells in the sample block, they all will be pushed down with sufficientforce to guarantee the snug and flush fit for each tube to guaranteeuniform thermal conductivity. Any design which has some sample tubeswith loose fits in their corresponding sample wells and some tubes withtight fits will not be able to achieve tight temperature control for alltubes because of non-uniform thermal conductivity An insufficient levelof force F results in a temperature response of the sample liquid to astep change in block temperature as shown at 286 in FIG. 14. An adequatelevel of force F results in the temperature response shown at 282.

[0206] The result achieved by the apparatus constructed according to theteachings of the invention is that the temperature of each samplemixture behaves as if the sample is being well mixed physically duringtransitions to new temperatures. In f act, because of the convectioncurrents caused in each sample mixture, the sample reaction mixture ineach sample tube is being well mixed.

[0207] The surprising result is that the thermal behavior of the entiresystem is like an electrical RC circuit with a single time constant of 9seconds which is about 1.44 times the half-life of the decay of thedifference between the block temperature and the sample temperature. AGeneAmp™ sample tube filled with 50 milliliters of sample has a timeconstant of about 23 seconds. In other words, during an upward change intemperature of the sample block, the temperature of the reaction mixtureacts like the rise in voltage on the capacitor C in a series RCelectrical circuit like that shown in FIG. 16D in response to a stepchange in the voltage output of the voltage source V.

[0208] To illustrate these concepts, refer to FIG. 14 which showsdifferent temperature responses of the sample liquid to a step change inblock temperature and to FIG. 15 which shows a cross section through asample well/sample tube combination. It has been found experimentallythat when the volume of sample liquid 276 is approximately 100microliters and the dimensions of the tube are such that the meniscus278 is located below the top surface 280 of the sample block 12, and theforce F pushing the sample tube into the sample well is at least 30grams, the thermal time constant τ (tau) of the system shown in FIG. 15is approximately nine seconds for a sample tube wall thickness in theconical section of 0.009 inches (dimension A). It has also been foundexperimentally that for these conditions, the thermal time constant τvaries by about 1 second for every 0.001 inch change in wall thicknessfor the sample tube frustum (cone). Thicker tube walls result in longertime constants and more lag between a change in sample block temperatureand the resulting change in sample liquid temperature.

[0209] Mathematically, the expression for the thermal response of thesample liquid temperature to a change in temperature of the sample blockis:

T _(sample) =ΔT(1−e ^(−t/τ))  (6)

[0210] where

[0211] T_(sample)=the temperature of the sample liquid

[0212] ΔT=the temperature difference between the temperature of thesample block 12 and the temperature of the sample liquid

[0213] t=elapsed time

[0214] τ=thermal time constant of the system, or the heat capacity ofsample divided by the thermal conductance from sample well wall to thesample liquid

[0215] In FIG. 14, the curve 282 represents this exponential temperatureresponse to a theoretical step change in sample block temperature whenthe force F pushing down on the sample tube is sufficiently high. Thestep change in temperature of the sample block is shown as function 284,with rapid rise in temperature starting at time T₁. Note how thetemperature of the sample liquid exponentially increases in response tothe step change and asymptotically approaches the final sample blocktemperature. As mentioned briefly above, the curve 286 represents thethermal response when the downward seating force F in FIG. 15 isinsufficient to cause a snug, flush fit between the cone of the sampletube and the wall 290 of the sample well. Generally, the thermalresponse of curve 286 will result if the force F is less than 30 grams.Note that although FIG. 15 shows a small layer of air between the coneof the sample tube and the sample well wall for clarity, this is exactlythe opposite of the desired situation since air is a good insulator andwould substantially increase the thermal time constant of the system.

[0216] The thermal time constant τ is analogous to the RC time constantin a series RC circuit where R corresponds to the thermal resistancebetween the wall of the sample well and the sample liquid and C is theheat capacity of the sample liquid. Thermal resistance is equal to theinverse of thermal conductance which is expressed in units watts-secondsper degree Kelvin.

[0217] Because of the convection currents 292 shown in the sample liquidin FIG. 15, everywhere in the reaction mixture the sample liquid is atvery nearly the same temperature, and the flow of heat between the blockand the sample is very nearly proportional to the difference intemperature between the sample block and the sample reaction mixture.The constant of proportionality is the thermal conductance between thewall of the sample well in the sample block 12 and the reaction mixture.For different sample volumes or different tubes, i.e., different wallthicknesses or materials, the thermal time constant will be different.In such a case, the user can as part of his specification of the PCRprotocol enter the sample volume or tube type and the machine willautomatically look up the correct thermal time constant for use incalculating the sample temperature. In some embodiments, the user mayenter the actual time constant, and the machine will use it for sampletemperature temperature calculation.

[0218] To keep the thermal time constant as small as possible, theconical walls of the sample tubes should be as thin as possible. In oneembodiment, these conical walls are 0.009 inches thick whereas the wallsof the cylindrical portion of the sample tube are 0.030 inches thick.The conical shape of the sample tube provides a relatively large surfacearea of contact with the metal of the sample well wall in relation tothe volume of the sample mixture. The tube-to-tube variation of the sizeand shape of the conical section should be controlled so that variationin projection of the tube above the block when the tube is seated in thesample well is within a range of 0.010 inches.

[0219] Molding of the sample tubes is done using a “cold runner” systemand a four cavity mold such that four sample tubes are molded at eachinjection. The molten plastic is injected at the tip of the sample tubecone so that any remnant of plastic will project into the cavity 291between the tip of th sample tube and the tip of the sample well. Thisprevents any remnant from interfering with the flush fit between thetube and the well. A maximum limit of 0.030 inches is placed on the sizeof any remnant plastic.

[0220] In various embodiments, 3 different grades of polypropylene eachwith different advantages can be used. The preferred polypropylene isPD701 from Himont because it is autoclavable. However this plastic isdifficult to mold because it has a low melt index. This plastic has amelt index of 35 and a molecular density of 9. PD701 tends to leaveflash and creates somewhat spotty quality parts but would work better ifit was injected into the thick walled part of the mold instead of at thetip of the conical section as is currently done. Generally, it isdesirable to have a high melt index for ease of molding but also a highmolecular density to maintain good strength and to prevent crazing orcracks under the thermal stress of the autoclaving process at 260° F.Another plastic, PPW 1780 from American Hoescht has a melt index of 75and a molecular density of 9 and is autoclavable. Another plastic whichmay be used in some embodiments is Himont 444. This plastic is notautoclavable and needs to be sterilized in another manner.

[0221] In alternative embodiments, the tubes may be molded using a “hotrunner” or “hot nozzle” system where the temperature of the moltenplastic is controlled right up to the gate of the mold. Also, in someembodiments, multiple gates may be used. However, neither of thesetechniques has been experimentally proven at the time of filing to bebetter than the currently used “cold runner” system.

[0222] The fact that the system acts thermally like a single timeconstant RC circuit is an important result, because it means that if thethermal conductance from the sample block to the sample reaction mixtureis known and uniform, the thermal response of the sample mixtures willbe known and uniform. Since the heat capacity of the sample reactionmixture is known and constant, the temperature of the sample reactionmixture can be computed accurately using only the measured history ofthe block temperature over time. This eliminates the need to measure thesample temperature thereby eliminating the errors and mechanicaldifficulty of putting a probe with nonnegligible thermal mass into asample well to measure the sample temperature directly thereby changingthe thermal mass of the sample in the probed well.

[0223] The algorithm which makes this calculation models the thermalbehavior of the system after a single time constant series R-Celectrical circuit. This model uses the ratio of the heat capacity ofthe liquid sample divided by the thermal conductance from the sampleblock to the sample reaction mixture. The heat capacity of the samplereaction mixture is equal to the specific heat of the liquid times themass of the liquid. The thermal resistance is equal to one over thethermal conductance from the sample block to the liquid reaction mixturethrough the sample tube walls. When this ratio of heat capacity dividedby thermal conductance is expressed in consistent units, it has thedimension of time. For a fixed sample volume and a fixed samplecomposition both of which are the same in every sample well and a fixedthermal conductance, the ratio is also a constant for every sample well,and is called the thermal time constant of the system. It is the timerequired for the sample temperature to come within 36.8% of the blocktemperature after a sudden step change in the block temperature.

[0224] There is a mathematical theorem used in the analysis ofelectronic circuits that holds that it is possible to calculate theoutput response of a filter or other linear system if one knows theimpulse response of the system. This impulse response is also known asthe transfer function. In the case of a series RC circuit, the impulseresponse is an exponential function as shown in FIG. 16A. The impulsestimulus resulting in the response of FIG. 16A is as shown in FIG. 16B.The mathematical theorem referred to above holds that the outputresponse of such a linear system can be determined by calculating theconvolution of the input signal and a weighting function where theweighting function is the impulse response of the system reversed intime. The convolution is otherwise known as a running weighted averagealthough a convolution is a concept in calculus with infinitely smallstep sizes whereas a running weighted average has discreet step sizes,i.e., multiple samples. The impulse response of the series RC circuitshown in FIG. 16D as such that when the voltage of the voltage generatorV suddenly rises and falls with a spike of voltage as shown in FIG. 16B,the voltage on the capacitor C suddenly rises to a peak at 294 in FIG.16A which is equal to the peak voltage of the impulse shown in FIG. 16Band then exponentially decays back to the steady state voltage V₁. Theresulting weighting function is the impulse response of FIG. 16A turnedaround in time as shown in FIG. 16C at 385.

[0225] Superimposed upon FIG. 16C is a hypothetical curve 387illustrating a typical temperature history for the temperature of thesample block 12 for an approximate step change in temperature. Alsoshown superimposed upon FIG. 16C are the times of five temperaturesample periods labelled T₁ through T₅. According to the teachings of theinvention, the sample temperature is calculated by multiplying thetemperature at each one of these times T₁ through T₅ by the value of theweighting function at that particular time and then summing all theseproducts and dividing by 5. The fact that the thermal system acts like asingle time constant linear circuit is a surprising result based uponthe complexities of thermal heat transfer considerations for thiscomplicated thermal system.

[0226] In one embodiment, the calculation of the sample temperature isadjusted by a short delay to account for transport lag caused bydifferent thermal path lengths to the block temperature sensor and thesample liquid. The calculated sample temperature is displayed for theuser's information on the terminal 16 shown in FIG. 1.

[0227]FIG. 17 shows the temperature response results for six differentwells spread throughout the 96 well sample block for a step change insample block temperature from a relatively lower temperature in thehybridization/extension temperature range to the relatively highertemperature of approximately 94° C. used for denaturation. The graph ofFIG. 17 shows good agreement between the predicted exponential rise insample temperature if the system were perfectly analogous to the seriesRC circuit shown in FIG. 16D, and also shows excellent uniformity oftemperature response in that the temperatures of the six sample wellsused for this study asymptotically settle in at temperatures very closeto each other and in a denaturation temperature “tolerance” band whichis approximately 0.5° C. wide.

[0228] In one embodiment, the ten most recent block temperature samplesare used for the running weighted average, but in other embodiments adifferent number of temperature history samples may be used. The goodagreement with theoretically predicted results stems from the fact thatthe thermal convection currents make the sample liquids well mixedthereby causing the system to act in a linear fashion.

[0229] The uniformity between sample temperatures in various samplewells spread throughout the 96 well array results from dynamic andstatic local balance and local symmetry in the sample block structure aswell as all the other thermal design factors detailed herein. Notehowever that during rapid temperature changes all the sample wells willhave temperatures within 0.5° C. of each other only if the user hascarefully loaded each sample well with the same mass of sample liquid.Inequality of mass in different wells does not cause unequaltemperatures in steady state, unchanging conditions, only during rapidchanges. The mass of the sample liquid in each well is the dominantfactor in determining the heat capacity of each sample and, therefore,is the dominant factor in the thermal time constant for that particularsample well.

[0230] Note that the ability to cause the sample liquid in all thesample wells to cycle up and down in temperature in unison and tostabilize at target temperatures very near each other, i.e., intolerance bands that are only 0.5° C. wide, also depends upon the forceF in FIG. 15. This force must exceed a minimum threshold force beforethe thermal time constants of all sample wells loaded with similarmasses of sample liquid will have the same time constant. This minimumthreshold force has been experimentally determined to be 30 grams forthe sample tube and sample well configuration described herein. Forhigher levels of accuracy, the minimum threshold force F in FIG. 15should be established at at least 50 grams and preferably 100 grams foran additional margin of safety as noted above.

[0231] The importance of thermal uniformity in sample well temperaturecan be appreciated by reference to FIG. 18. This figure shows therelationship between the amount of DNA generated in a PCR cycle and theactual sample temperature during the denaturation interval for oneinstance of amplification of a certain segment of DNA. The slope offunction 298 between temperatures 93 and 95 degrees centigrade isapproximately 8% per degree centigrade for this particular segment ofDNA and primers. FIG. 18 shows the general shape of the curve whichrelates the amount of DNA generated by amplification, but the details ofthe shape of the curve vary with every different case of primers and DNAtarget. Temperatures for denaturation above 97 degrees centigrade aregenerally too hot and result in decreasing amplification for increasingdenaturation temperature. Temperatures between 95 and 97 degreescentigrade are generally just right.

[0232]FIG. 18 illustrates that any sample well containing thisparticular DNA target and primer combination which stabilizes at adenaturation temperature of approximately 93° C. is likely to have 8%less DNA generated over the course of a typical PCR protocol than wellsdenatured at 94° C. Likewise, sample liquids of this mixture thatstabilize at denaturation temperatures of 95° C. are likely to have 8%more DNA generated therein than is generated in sample wells whichstabilize at denaturation temperatures of 94° C. Because all curves ofthis nature have the same general shape, it is important to haveuniformity in sample temperature.

[0233] The sample temperatures calculated as described above are used bythe control algorithm for controlling the heaters and flow through theramp cooling channels and to determine how long the samples have beenheld at various target temperatures. The control algorithm uses thesetimes for comparison with the desired times for each incubation periodas entered by the user. When the times match, the control algorithmtakes the appropriate steps to heat or cool the sample block toward thetarget temperature defined by the user for the next incubation.

[0234] When the calculated sample temperature is within one degreecentigrade of the setpoint, i.e., the incubation temperature programmedby the user, the control program causes a timer to start. This timer maybe preset to count down from a number set so as to time out the intervalspecified by the user for the incubation being performed. The timerstarts to count down from the preset count when the calculated sampletemperature is within one degree centigrade. When the timer reaches azero count, a signal is activated which causes the CPU to take actionsto implement the next segment of the PCR protocol. Any way to time thespecified interval will suffice for purposes of practicing theinvention.

[0235] Typically, the tolerance band around any particular targettemperature is plus or minus 0.5° C. Once the target temperature isreached, the computer holds the sample block at the target temperatureusing the bias cooling channels and the film heater such that all thsamples remain close to the target temperature for the specifiedinterval.

[0236] For the thermal system described herein to work well, the thermalconductance from the sample block to each sample must be known anduniform to within a very close tolerance. Otherwise, not all sampleswill be held within the specified tolerance band of the targettemperature when the timer starts and, not all the samples willexperience the same incubation intervals at the target temperature.

[0237] Also, for this thermal system to work well, all sample tubes mustbe isolated from variables in the ambient environment. That is, it isundesirable for some sample tubes to be cooled by drafts while othersample tubes in different physical positions do not experience the samecooling effects. For good uniformity it is highly desirable that thetemperatures of all the samples be determined by the temperature of thesample block and by nothing else.

[0238] Isolation of the tubes from the ambient, and application of theminimum threshold force F pushing down on the sample tubes is achievedby a heated cover over the sample tubes and sample block.

[0239] Even though the sample liquid is in a sample tube pressed tightlyinto a temperature-controlled metal block, tightly capped, with ameniscus well below the surface of the temperature-controlled metalblock, the samples still lose their heat upward by convection.Significantly, when the sample is very hot (the denaturation temperatureis typically near the boiling point of the sample liquid), the sampleliquid can lose a very significant amount of heat by refluxing of watervapor. In this process, water evaporates from the surface of the hotsample liquid and condenses on the inner walls of the cap and the coolerupper parts of the sample tube above the top surface of the sampleblock. If there is a relatively large volume of sample, condensationcontinues, and condensate builds up and runs back down the wall s of thesample tube into the reaction mixture. This “refluxing” process carriesabout 2300 joules of heat per gram of water refluxed. This process cancause a drop of several degrees in the surface temperature of a 100microliter reaction mixture thereby causing a large reduction ofefficiency of the reaction.

[0240] If the reaction mixture is small, say 20 microliters, and thesample tube has a relatively large surface area above the top surface ofthe sample block, a significant fraction of the water in the reactionmixture may evaporate. This water may then condense inside the upperpart of the sample tube and remain there by surface tension during theremainder of the high temperature part of the cycle. This can soconcentrate the remaining reaction mixture that the reaction is impairedor fails completely.

[0241] In the prior art PCR thermal cyclers, this refluxing problem wasdealt with by overlaying the reaction mixture with a layer of oil ormelted wax. This immiscible layer of oil or wax floated on the aqueousreaction mixture and prevented rapid evaporation. However, labor wasrequired to add the oil which raised processing costs. Further, thepresence of oil interfered with later steps of processing and analysisand created a possibility of contamination of the sample. In fact, it isknown that industrial grade mineral oils have in the past contaminatedsamples by the unknown presence of contaminating factors in the oilwhich were unknown to the users.

[0242] The need for an oil overlay is eliminated, and the problems ofheat loss and concentration of the reaction mixture by evaporation andunpredictable thermal effects caused by refluxing are avoided accordingto the teachings of the invention by enclosing the volume above thesample block into which the upper parts of the sample tubes project andby heating this volume from above by a heated cover sometimes hereafteralso called the platen.

[0243] Referring to FIG. 19, there is shown a cross sectional view ofthe structure which is used to enclose the sample tubes and applydownward force thereto so as to supply the minimum threshold force F inFIG. 15. A heated platen 14 is coupled to a lead screw 312 so as to moveup and down along the axis symbolized by arrow 314 with rotation of thelead screw 312. The lead screw is threaded through an opening in asliding cover 316 and is turned by a knob 318. The platen 314 is heatedto a temperature above the boiling point of water by resistance heaters(not shown) controlled by computer 20.

[0244] The sliding cover 316 slides back and forth along the Y axis onrails 320 and 322. The cover 316 includes vertical sides 317 and 319 andalso includes vertical sides parallel to the X-Z plane (not shown) whichenclose the sample block 12 and sample tubes. This structuresubstantially prevent drafts from acting on the sample tubes of whichtubes 324 and 326 are typical.

[0245]FIG. 20 is a perspective view of the sliding cover 316 and sampleblock 12 with the sliding cover in retracted position to allow access tothe sample block. The sliding cover 316 resembles the lid of arectangular box with vertical wall 328 having a portion 330 removed toallow the sliding cover 316 to slide over the sample block 12. Thesliding cover is moved along the Y axis in FIG. 20 until the cover iscentered over the sample block 12. The user then turns the knob 318 in adirection to lower the heated platen 14 until a mark 332 on the knob 318lines up with a mark 334 on an escutcheon plate 336. In someembodiments, the escutcheon plate 336 may be permanently affixed to thetop surface of the sliding cover 316. In other embodiments, theescutcheon 336 may be rotatable such that the index mark 334 may beplaced in different positions when different size sample tubes are used.In other words, if taller sample tubes are used, the heated platen 14need not be lowered as much to apply the minimum threshold force F inFIG. 15. In use, the user screws the screw 318 to lower the platen 14until the index marks line up. The user then knows that the minimumthreshold force F will have been applied to each sample tube.

[0246] Referring jointly to FIGS. 15 and 19, prior to lowering theheated platen 14 in FIG. 19, the plastic cap 338 for each sample tubesticks up about 0.5 millimeters above the level of the top of the wallsof a plastic tray 340 (FIG. 19) which holds all the sample tubes in aloose 8×12 array on 9 millimeter centers. The array of sample wells canhold up to 96 MicroAmp™ PCR tubes of 100 μL capacity or 48 largerGeneAmp™ tubes of 0.5 ml capacity. The details of this tray will bediscussed in greater detail below. The tray 340 has a planar surfacehaving an 8×12 array of holes for sample tubes. This planar surface isshown in FIGS. 15 and 19 as a horizontal line which intersects thesample tubes 324 and 326 in FIG. 19. Tray 340 also has four verticalwalls two of which are shown at 342 and 344 in FIG. 19. The top level ofthese vertical walls, shown at 346 in FIG. 15, establishes a rectangularbox which defines a reference plane.

[0247] As best seen in FIG. 15, the caps 338 for all the sample tubesproject above this reference plane 346 by some small amount which isdesigned to allow the caps 338 to be softened and deformed by the heatedplaten 14 and “squashed” down to the level of the reference plane 346.In the preferred embodiment, the heated platen 14 is kept at atemperature of 105° C. by the CPU 20 in FIG. 1 and the bus 22 coupled toresistance heaters (not shown) in the platen 14. In the preferredembodiment, the knob 318 in FIG. 19 and the lead screw 312 are turneduntil the heated platen 14 descends to and makes contact with the topsof the caps 338. In the preferred embodiment, the caps 338 for thesample tubes are made of polypropylene. These caps soften shortly afterthey come into contact with the heated platen 14. As the caps soften,they deform, but they do not lose all of their elasticity. Aftercontacting the caps, the heated platen is lowered further until it restsupon the reference plane 346. This further lowering deforms the caps 338and causes a minimum threshold force F of at least 50 grams to push downon each sample tube to keep each tube well seated firmly in its samplewell. The amount by which the caps 338 project above the reference plane346, and the amount of deformation and residual elasticity when theheated platen 14 rests upon the reference plane 346 is designed suchthat a minimum threshold force F of at least 50 grams and preferably 100grams will have been achieved for all sample tubes then present afterthe heated platen 14 has descended to the level of the reference plane346.

[0248] The heated platen 14 and the four vertical walls and planarsurface of the tray 340 form a heated, sealed compartment when theplaten 14 is in contact with the top edge 346 of the tray. The plasticof the tray 340 has a relatively poor thermal conductivity property. Ithas been found experimentally that contacting the heated platen 14 withthe caps 338 and the isolation of the portion of the sample tubes 288which project above the top level 280 of the sample block 12 by a wallof material which has relatively poor thermal conductivity has abeneficial result. With this structure, the entire upper part of thetube and cap are brought to a temperature which is high enough thatlittle or no condensation forms on the inside surfaces of the tube andcap since the heated platen is kept at a temperature above the boilingpoint of water. This is true even when the sample liquid 276 in FIG. 15is heated to a temperature near its boiling point. This eliminates theneed for a layer of immiscible material such as oil or wax floating ontop of the sample mixture 276 thereby reducing the amount of laborinvolved in a PCR reaction and eliminating one source of possiblecontamination of the sample.

[0249] It has been found experimentally that in spite of the very hightemperature of the heated cover and its close proximity to the sampleblock 12, there is little affect on the ability of the sample block 12to cycle accurately and rapidly between high and low temperatures.

[0250] The heated platen 14 prevents cooling of the samples by therefluxing process noted earlier because it keeps the temperature of thecaps above the condensation point of water thereby keeping the insidesof the caps dry. This also prevents the formation of aerosols when thecaps are removed from the tubes.

[0251] In alternative embodiments, any means by which the minimumacceptable downward force F in FIG. 15 can be applied to each individualsample tube regardless of the number of sample tubes present and whichwill prevent condensation and refluxing and convection cooling willsuffice for purposes of practicing the invention. The application ofthis downward force F and the use of heat to prevent refluxing andundesired sample liquid concentration need not be both implemented bythe same system as is done in the preferred embodiment.

[0252] The sample tubes may vary by a few thousandths of an inch intheir overall height. Further, the caps for the sample tubes may alsovary in height by a few thousandths of an inch. Also, each conicalsample well in the sample block 12 may not be drilled to exactly thesame depth, and each conical sample well in the sample block may bedrilled to a slightly different diameter and angle. Thus, when apopulation of capped tubes is placed in the sample block so as to beseated in the corresponding sample well, the tops of the caps will notall necessarily be at the same height. The worst case discrepancy forthis height could be as much as 0.5 millimeters from the highest to thelowest tubes.

[0253] If a perfectly flat unheated platen 14 mounted so that it is freeto find its own position were to be pressed down on such an array ofcaps, it would first touch the three tallest tubes. As further pressurewas applied and the tallest tubes were compressed somewhat, the platenwould begin to touch some caps of lower tubes. There is a distinctpossibility that unless the tube and cap assemblies were compliant, thetallest tubes would be damaged before the shortest tubes were contactedat all. Alternatively, the force necessary to compress all the talltubes sufficiently so as to contact the shortest tube could be too largefor the device to apply. In either case, one or more short tubes mightnot be pressed down at all or might be pressed down with an insufficientamount of force to guarantee that the thermal time constant for thattube was equal to the thermal time constants for all the other tubes.This would result in the failure to achieve the same PCR cycle for alltubes in the sample block since some tubes with different thermal timeconstants would not be in step with the other tubes. Heating the platenand softening the caps eliminates these risks by eliminating themanufacturing tolerance errors which lead to differing tube heights as afactor.

[0254] In an alternative embodiment, the entire heated platen 14 iscovered with a compliant rubber layer. A compliant rubber layer on theheated platen would solve the height tolerance problem, but would alsoact as a thermal insulation layer which would delay the flow of heatfrom the heated platen to the tube caps. Further, with long use at hightemperatures, most rubber materials deteriorate or become hard. It istherefore desirable that the heated platen surface be a metal and a goodconductor of heat.

[0255] In another alternative embodiment, 96 individual springs could bemounted on the platen so that each spring individually presses down on asingle sample tube. This is a complex and costly solution, however, andit requires that the platen be aligned over the tube array with amechanical precision which would be difficult or bothersome to achieve.

[0256] The necessary individual compliance for each sample tube in thepreferred embodiment is supplied by the use of plastic caps whichcollapse in a predictable way under the force from the platen but which,even when collapsed, still exert a downward force F on the sample tubeswhich is adequate to keep each sample tube seated firmly in its well.

[0257] In the sample tube cap 338 shown in FIG. 15, the surface 350should be free of nicks, flash and cuts so that it can provide ahermetic seal with the inner walls 352 of the sample tube 288. In thepreferred embodiment, the material for the cap is polypropylene. Asuitable material might be Valtec HH-444 or PD701 polypropylenemanufactured by Himont as described above or PPW 1780 by AmericanHoescht. As shown in FIG. 15, in the preferred embodiment, the wallthickness for the domed portion of the cap is about the same as the wallthickness of the adjacent tube portion, most preferably 0.018-0.022inches. The thickness of the shoulder portion 356 is 0.025 inches andthe width of the domed shaped portion of the cap is 0.203 inches in thepreferred embodiment.

[0258] Any material and configuration for the caps which will cause theminimum threshold force F in FIG. 15 to be applied to all the sampletubes and which will allow the cap and upper portions of the sampletubes to be heated to a temperature high enough to prevent condensationand refluxing will suffice for purposes of practicing the invention. Thedome shaped cap 338 has a thin wall to aid in deformation of the cap.Because the heated platen is kept at a high temperature, the wallthickness of the domed shaped cap can be thick enough to be easilymanufactured by injection molding since the necessary compliance toaccount for differences in tube height is not necessary at roomtemperature.

[0259] The platen can be kept at a temperature anywhere from 94° C. to110° C. according to the teachings of the invention although the rangefrom 100° C. to 110° C. is preferred to prevent refluxing since theboiling point of water is 100° C. In this temperature range, it has beenexperimentally found that the caps soften just enough to collapse easilyby as much as 1 millimeter. Studies have shown that the elasticproperties of the polypropylene used are such that even at thesetemperatures, the collapse is not entirely inelastic. That is, eventhough th heated platen causes permanent deformation of the caps, thematerial of the caps still retain a significant enough fraction of theirroom temperature elastic modulus that the minimum threshold force F isapplied to each sample tube. Further, the heated platen levels all thecaps that it contacts without excessive force regardless of how manytubes are present in the sample block because of the softening of thecap.

[0260] Because the cap temperature is above the boiling point of waterduring the entire PCR cycle, the inside surfaces of each cap remaincompletely dry. Thus, at the end of a PCR process, if the samples arecooled to room temperature before being removed from the sample block,if the caps on each sample tube are opened, there is no possibility ofcreating an aerosol spray of the sample tube contents which could resultin cross contamination. This is because there is no liquid at the cap totube seal when the seal is broken.

[0261] This is extremely advantageous, because tiny particles of aerosolcontaining amplified product DNA can contaminate a laboratory and getinto sample tubes containing samples from other sources, e.g., otherpatients, thereby possibly causing false positive or negative diagnosticresults which can be very troublesome. Users of the PCR amplificationprocess are extremely concerned that no aerosols that can contaminateother samples be created.

[0262] A system of disposable plastic items is used to convert theindividual sample tubes to an 8×12 array which is compatible withmicrotiter plate format lab equipment but which maintains sufficientindividual freedom of movement to compensate for differences in thevarious rates of thermal expansion of the system components. Therelationship of the thermally compliant cap to the rest of this systemis best seen in FIG. 21A which is a cross sectional view of the sampleblock, and two sample tubes with caps in place with the sample tubesbeing held in place by the combination of one embodiment of a plastic 96well microtiter tray and a retainer. FIG. 21B is an alternative,preferred embodiment showing the structure and interaction of most ofthe various plastic disposable items of the system. The rectangularplastic 96 well microtiter plate tray 342 rests on the surface of thesample block 12. The top edge 346 of the frame 342 has a height which isapproximately 0.5 millimeters shorter than the height of the caps ofwhich cap 364 is exemplary. All of the capped tubes will project higherthan the edge 346 of the frame 342. The frame 342 is configured suchthat a downward extending ridge 366 extends into the guardband groove 78through its entire length. The frame 342 does however have a gap (notshown) which corresponds to the gap in the groove 78 for the temperaturesensor shown in FIG. 2 in plan view and in FIG. 7 in cross-sectionalview.

[0263] The reference plane 346 mentioned above is established by the topof the frame 342. How this reference plane interacts with the heatedplaten is as follows. Prior to screwing down the knob 318 in FIG. 20 toline up the index marks 332 and 334 to start an amplification run, acalibration process will have been performed to locate the position ofthe index mark on the escutcheon platen 336 in FIG. 20. This calibrationis started by placing the frame 342 in FIG. 21 in position on the sampleblock. The frame 342 will be empty however or any sample tubes thereinwill not have any caps in place. Then, the knob 318 is screwed downuntil the heated platen 14 is firmly in contact with the top edge 346 ofthe frame 342 around its entire parameter. When the knob 318 has beenscrewed down sufficiently to allow the heated platen to rest on thereference plane 346 and to press the frame 342 firmly against the topsurface 280 of the sample block, the rotatable escutcheon 336 of thepreferred embodiment will be rotated until the index mark 334 on theescutcheon lines up with the index mark 332 on the knob 318. Then, theknob 318 is rotated counterclockwise to raise the platen 14 and thecover 316 in FIG. 19 is slid in the negative Y direction to uncover theframe 342 and the sample block 12. Sample tubes with caps loaded with asample mixture may then be placed in position in the frame 342. Theheated cover 316 is then placed back over the sample block, and the knob318 is turned clockwise to lower the heated platen 14 until the indexmark 332 on the knob lines up with the index mark 334 as previouslypositioned. This guarantees that all tubes have been firmly seated withthe minimum force F applied. The use of the index marks gives the user asimple, verifiable task to perform.

[0264] If there are only a few sample tubes in place, it will take onlya small amount of torque to line up the index marks 332 and 334. Ifthere are many tubes, however, it will take more torque on the knob 318to line up the index marks. This is because each tube is resisting thedownward movement of the heated platen 14 as the caps deform. However,the user is assured that when the index marks 332 and 334 are aligned,the heated platen will once again be tightly placed against the top edge346 of the frame 342 and all tubes will have the minimum threshold forceF applied thereto. This virtually guarantees that the thermal timeconstant for all the tubes will be substantially the same.

[0265] In alternative embodiments, the index marks 332 and 334 may bedispensed with, and the knob 318 may simply be turned clockwise until itwill not turn any more. This condition will occur when the heated platen314 has reached the top edge or reference plane 346 and the plasticframe 342 has stopped further downward movement of the heated platen 14.Obviously in this alternative embodiment, and preferably in the indexmark embodiment described above, the plastic of the frame 342 will havea melting temperature which is sufficiently high to prevent deformationof the plastic of the frame 342 when it is in contact with the heatedplaten 14. In the preferred embodiment, the plastic of the frame 342 iscelanese nylon 1503 with a wall thickness of 0.05 inches.

[0266] An advantage of the above described system is that sample tubesof different heights may be used simply by using frames 342 havingdifferent heights. The frame 342 should have a height which isapproximately 0.5 millimeters shorter than the plane of the tips of thecapped tubes when both are seated in the sample block. In the preferredembodiment, two different tube heights are used. The range of motion ofthe lead screw 312 which drives the heated platen 14 in FIG. 19 must besufficient for all the different sizes of sample tubes to be used. Ofcourse, during any particular PCR processing cycle, all tubes must bethe same height.

[0267] The system described above provides uniform temperatures in thesample block, uniform thermal conductance from block to sample, andisolation of the sample tubes from the vagaries of the ambientenvironment. Any number of sample tubes up to 96 may be arrayed in themicrotiter plate format. The system allows accurate temperature controlfor a very large number of samples and a visual indication of the sampletemperatures for all samples without actually measuring the temperatureof any sample.

[0268] As the container for PCR reactions, it has been common in theprior art to use polypropylene tubes which were originally designed formicrocentrifuges. This prior art tube had a cylindrical cross-sectionclosed at the top by a snap-on cap which makes a gas-tight seal. Thisprior art tube had a bottom section which comprised the frustum of acone with an included angle of approximately 17 degrees.

[0269] When such a conical sample tube is pressed down into a samplewell of a sample block with a conical cavity with the same includedangle, and when the sample mixture in the tube lies entirely within theconical volume and below the top surface of the sample block, thethermal conductance between the block and the liquid can be madeadequately predictable for good uniformity of sample temperaturethroughout the array. To achieve adequate control of the thermalconductance between the sample block and the sample mixture, theincluded angles of the conical tube and the sample well must matchclosely, and the conical surfaces of the tube and well must be smoothand held together in flush relation. Further, the minimum thresholdforce F must be applied to each sample tube to press each tube tightlyinto the sample well so that it does not rise up or loosen in the wellfor any reason during thermal cycling, such as steam formation fromtrapped liquid in space 291 in FIG. 15. Finally, each tube must beloaded with the same amount of sample liquid. If the above listedconditions are met, the thermal conductance between the sample block andthe sample liquid in each tube will be predominantly determined by theconductance of the conical plastic wall 368 in FIG. 15 and a boundarylayer, (not shown) of the sample liquid at the inside surface 370 of theconical sample tube wall.

[0270] The thermal conductance of the plastic tube walls is determinedby their thickness, which can be closely controlled by the injectionmolding method of manufacture of the tubes. The sample liquid in all thesample tubes has virtually identical thermal properties.

[0271] It has been found by experiment and by calculation that a molded,one-piece, 96-well microtiter plate is only marginally feasible for PCRbecause the differences in the thermal expansion coefficients betweenaluminum and plastic lead to dimensional changes which can destroy theuniformity of thermal conductance to the sample liquid across the array.That is, since each well in such a one-piece plate is connected to eachother well through the surface of the plate, the distances between thewells are determined at the time of initial manufacture of the plate butchange with changing temperature since the plastic of the plate has asignificant coefficient of thermal expansion. Also, distances betweenthe sample wells in the metal sample block 12 are dependent upon thetemperature of the sample block since aluminum also has a significantcoefficient of thermal expansion which is different than that ofplastic. To have good thermal conductance, each sample well in aone-piece 96-well microtiter plate would have to fit almost perfectly inthe corresponding well in the sample block at all temperatures. Sincethe temperature of the sample block changes over a very wide range oftemperatures, the distances between the sample wells in the sample blockvary cyclically during the PCR cycle. Because the coefficients ofthermal expansion for plastic and aluminum are substantially different,the distances of the well separation in the sample block would varydifferently over changing temperatures than would the distances betweenthe sample wells of a plastic, one-piece, 96-well microtiter plate.

[0272] Thus, as an important criteria for a perfect fit between a sampletube and the corresponding sample well over the PCR temperature range,it is necessary that each sample tube in the 96-well array beindividually free to move laterally and each tube must be individuallyfree to be pressed down vertically by whatever amount is necessary tomake flush contact with the walls of the sample well.

[0273] The sample tubes used in the invention are different from theprior art microcentrifuge tubes in that the wall thickness of theconical frustum position of the sample tube is much thinner to allowfaster heat transfer to and from the sample liquid. The upper part ofthese tubes has a thicker wall thickness than the conical part. In FIG.15, the wall thickness in the cylindrical part 288 in FIG. 15 isgenerally 0.030 inches while the wall thickness for the conical wall 368is 0.009 inches. In a preferred embodiment, the wall thickness in thecylindrical part above shoulder 384 is about 0.022 inches, the wallthickness in the cylindrical part below shoulder 384 is about 0.015inches, and the wall thickness in the conical section is in the range0.009+/−0.001 inches average, although intra-wall variations can varyfrom nominal by up to four times that amount. Because thin parts coolfaster than thick parts in the injection molding process, it isimportant to get th mold full before the thin parts cool off.

[0274] The material of the sample tubes must be compatible chemicallywith the PCR reaction. Glass is not a PCR compatible material, becauseDNA sticks to glass and will not come off which would interfere with PCRamplification. Preferably an autoclavable polypropylene is used. Threetypes of suitable polypropylene were identified earlier herein. Someplastics are not compatible with the PCR process because of outgassingof materials from the plastic or because DNA sticks to the plasticwalls. Polypropylene is the best known class of plastics at this time.

[0275] Conventional injection molding techniques and mold manufacturetechniques for the injection mold will suffice for purposes ofpracticing the invention.

[0276] The use of cone shaped sample tubes translates substantially allmanufacturing tolerance errors to height errors, i.e., a variance fromtube to tube in the height of the tip of the cap to the top of thesample block when the sample tube is seated in the sample well. Forexample, an angle error for the angle of the sample tube walls isconverted to a height error when the tube is placed in the sample blockbecause of the mismatch between the tube wall angle and the sample wellwall angle. Likewise, a diameter error in the dimensions of the conewould also translate into a height error since the conical part of thetube would either penetrate deeper or not as much as a properlydimensional tube.

[0277] For good uniformity of thermal conductance across the array, agood fit between the sample tubes and the sample well must exist for all96-wells over the full temperature range of 0 to 100° C. regardless ofdifferences in thermal expansion rates. Also, each of the 96 sample tubs must have walls with dimensions and wall thicknesses which are uniformto a very high degree. Each sample tube in which sample mixture is to beheld should be fitted with a removable gas-tight cap that makes agas-tight seal to prevent loss of water vapor from the reaction mixturewhen this mixture is at or near its boiling point such that the volumeof the sample mixture does not decrease. All these factors combine tomake a one-piece microtiter plate with 96 individual sample wellsextremely difficult to manufacture in a manner so as to achieve uniformthermal conductance for all 96 wells.

[0278] Any structure which provides the necessary individual lateral andvertical degrees of freedom for each sample tube will suffice forpurposes of practicing the invention.

[0279] According to the teachings of the preferred embodiment of theinvention, all the above noted requirements have been met by using a 4piece disposable plastic system. This system gives each sample tubesufficient freedom of motion in all necessary directions to compensatefor differing rates of thermal expansion and yet retains up to 96 sampletubes in a 96 well microtiter plate format for user convenience andcompatibility with other laboratory equipment which is sized to workwith the industry standard 96-well microtiter plate. The multi-piecedisposable plastic system is very tolerant of manufacturing toleranceerrors and the differing thermal expansion rates over the widetemperature range encountered during PCR thermal cycling.

[0280]FIGS. 21A and 21B show alternative embodiments of most of the fourpiece plastic system components in cross-section as assembled to hold aplurality of sample tubes in their sample wells with sufficient freedomof motion to account for differing rates of thermal expansion. FIG. 45shows all the parts of the disposable plastic microtiter plate emulationsystem in an exploded view. This figure illustrates how the parts fittogether to form a microtiter plate with all the sample tubes looselyretained in an 8×12 microtiter plate format 96 well array. FIG. 22 showsa plan view of a microtiter plate frame 342 according to the teachingsof the invention which is partially shown in cross-section in FIGS. 21Aand 21B. FIG. 23 shows a bottom view plan view of th frame 342. FIG. 24is an end view of the frame 342 taken from view line 24-24′ in FIG. 22.FIG. 25 is an end view of the frame 342 taken from view line 25-25′ inFIG. 22. FIG. 26 is a cross section through the frame 342 at sectionline 26-26′ in FIG. 22. FIG. 27 is a cross sectional view through theframe 342 taken along section line 27-27′ in FIG. 22. FIG. 28 is a sideview of the frame 342 taken along view line 28-28′ in FIG. 22 with apartial cut away to show in more detail the location where a retainer tobe described below clips to the frame 342.

[0281] Referring jointly to FIGS. 21A, 21B and 22 through 28, the frame342 is comprised of a horizontal plastic plate 372 in which there areformed 96 holes spaced on 9 millimeter centers in the standardmicrotiter plate format. There are 8 rows labeled A through H and 12columns labeled 1 through 12. Hole 374 at row D, column 7 is typical ofthese holes. In each hole in the frame 342 there is placed a conicalsample tube such as the sample tube 376 shown in FIG. 15. Each sampletube is smaller in diameter than the hole in which it is placed by about0.7 millimeters, so that there is a loose fit in the hole. This is bestseen in FIGS. 21A and 21B by observing the distance between the insideedge 378 of a typical hole and the side wall 380 of the sample tubeplaced therein. Reference numeral 382 in FIGS. 21A and 21B shows theopposite edge of the hole which is also spaced away from the outsidewall of the cylindrical portion of the sample tube 376.

[0282] Each sample tube has a shoulder shown at 384 in FIGS. 15, 21A and21B. This shoulder is molded around the entire circumference of thecylindrical portion 288 of each sample tube. As is shown in a preferredembodiment of FIGS. 21A, 21B and 26, the lower surface of shoulder 384is beveled and the hole 374 is countersunk. This aids in centering thetube upright in hole 374 in frame 342. The diameter of this shoulder 384is large enough that it will not pass through the holes in the frame342, yet not so large as to touch the shoulders of the adjacent tubes inneighboring holes.

[0283] Once all the tubes are placed in their holes in the frame 342, aplastic retainer 386 (best seen in FIGS. 21A and 21B and FIG. 45) issnapped into apertures in the frame 342. The purpose of this retainer isto keep all the tubes in place such that they cannot fall out or beknocked out of the frame 342 while not interfering with their loosenessof fit in the frame 342. The retainer 386 is sized and fitted to theframe 342 such that each sample tube has freedom to move vertically upand down to some extent before the shoulder 384 of the tube encounterseither the retainer 386 or the frame 342. Thus, the frame and retainer,when coupled, provide a microtiter plate format for up to 96 sampletubes but provide sufficient horizontal and vertical freedom such thateach tube is free to find its best fit at all temperatures under theinfluence of the minimum threshold force F in FIG. 15. As shown in theembodiment depicted in FIG. 15, shoulder 384 may be locatedapproximately in the midsection of cylindrical portion 288 of tube 376.

[0284] A more clear view of the sample tube and shoulder may be had byreference to FIGS. 29 and 30. FIGS. 29 and 30 are an elevation sectionalview and a partial upper section of the shoulder portion, respectively,of a typical sample tube. A plastic dome-shaped cap such as will bedescribed in more detail below is inserted into the sample tube shown inFIG. 29 and forms a hermetic seal with the inside wall 390 of the top atthe sample tube. A ridge 392 formed in the inside wall of the sampletube acts as a stop for the dome-shaped cap to prevent furtherpenetration. Normally, the dome-shaped caps come in strips connected byweb.

[0285]FIG. 31 shows three caps in elevation view connected by a web 394and terminated in a tab 396. The tab aids the user in removing an entirerow of caps by a single pull. Normally, the web 394 rests on the topsurface 398 of the sample tube and prevents further penetration of thecap into the sample tube. Each cap includes a ridge 400 which forms thehermetic seal between the cap and the inside wall of the sample tube. Asshown particularly in FIGS. 30 and 31, the bottom outside of the capside or ridge 400 may be beveled, the top of inner wall 390 of the tubemay be flared, or both. This aids in inserting the cap into the tube.FIG. 32 shows a top view of three caps in a typical strip of 12connected caps.

[0286] For a more detailed understanding of the retainer, refer to FIGS.33 through 37. FIG. 33 is a top view of the plastic retainer. FIG. 34 isan elevation view of the retainer taken along view line 34-34′ in FIG.33. FIG. 35 is an end elevation view of the retainer taken along viewline 35-35′ in FIG. 33. FIG. 36 is a sectional view taken along sectionline 36-36′ in FIG. 33. FIG. 37 is a sectional view through the retainertaken along section line 37-37′ in FIG. 33.

[0287] Referring jointly to FIGS. 33-37, the retainer 386 is comprisedof a single horizontal plastic plane 402 surrounded by a vertical wall404. The plane 402 has an 8×12 array of 96 holes formed therein dividedinto 24 groups of four holes per group. These groups are set off byridges formed in the plane 402 such as ridges 406 and 408. Each hole, ofwhich hole 410 is typical, has a diameter D which is larger than thediameter D₁ in FIG. 29 and smaller than the diameter D₂. This allows theretainer to be slipped over the sample tubes after they have been placedin the frame 342 but prevents the sample tubes from falling out of theframe since the shoulder 384 is too large to pass through the hole 410.

[0288] The retainer snaps into the frame 342 by means of plastic tabs414 shown in FIGS. 34 and 36. These plastic tabs are pushed through theslots 416 and 418 in the frame as shown in FIG. 23. There are twoplastic tabs 414, one on each long edge of the retainer. These twoplastic tabs are shown as 414A and 414B in FIG. 33.

[0289] The frame 342 of FIGS. 22-28, with up to 96 sample tubes placedtherein and with the retainer 386 snapped into place, forms a singleunit such as is shown in FIGS. 21A and 21B which can be placed in thesample block 12 for PCR processing.

[0290] After processing, all the tubes may be removed simultaneously bylifting the frame 342 out of the sample block. For convenience andstorage, the frame 342 with sample tubes and retainer in place can beinserted into another plastic component called the base. The base hasthe outside dimensions and footprint of a standard 96-well microtiterplate and is shown in FIGS. 38 through 44. FIG. 38 is a top plan view ofthe base 420, while FIG. 39 is a bottom plan view of the base. FIG. 40is an elevation view of the base taken from view line 40-40′ in FIG. 38.FIG. 41 is an end elevation view taken from view line 41-41′ in FIG. 38.FIG. 42 is a sectional view taken through the base along section line42-42′ in FIG. 38. FIG. 43 is a sectional view through the base takenalong section line 43-43′ in FIG. 38. FIG. 44 is a sectional view takenalong section line 44-44′ in FIG. 38.

[0291] The base 420 includes a flat plane 422 of plastic in which an8×12 array of holes with sloped edges is formed. These holes havedimensions and spacing such that when the frame 342 is seated in thebase, the bottoms of the sample tubes fit into the conical holes in thebase such that the sample tubes are held in the same relationship to theframe 342 as the sample tubes are held when the frame 342 is mounted onthe sample block. Hole 424 is typical of the 96 holes formed in the baseand is shown in FIGS. 38, 44 and 43. The individual sample tubes, thoughloosely captured between the tray and retainer, become firmly seated andimmobile when the frame is inserted in the base. The manner in which atypical sample tube 424 fits in the base is shown in FIG. 44.

[0292] In other words, when the frame, sample tubes and retainer areseated in the base 420 the entire assembly becomes the exact functionalequivalent of an industry standard 96-well microtiter plate, and can beplaced in virtually any automated pipetting or sampling system for96-well industry standard microtiter plates for further processing.

[0293] After the sample tubes have been filled with the necessaryreagents and DNA sample to be amplified, the sample tubes can be capped.In an alternative embodiment of the cap strip shown in FIGS. 31 and 32,an entire mat of 96 caps with a compliant web connecting them in an 8×12array may be used. This web, shown at 394 in FIG. 31 must besufficiently compliant so that the caps do not restrain the sample tubesfrom making the small motions these sample tubes must make to fitperfectly in the conical wells of the sample block at all temperatures.

[0294] The assembly of tubes, caps, frames, retainer and base is broughtafter filling the tubes to the thermal cycler. There, the frame, cappedtubes and retainer plate are removed from the base as a unit. This unitis then placed in the sample block 12 to make the assembly shown in FIG.21A or 21B with the tubes loosely held in the conical wells in thesample block. As shown in FIG. 21, the frame 342 is seated on the topsurface 280 of the guardband. In the preferred embodiment, the ridge 366extends down into the groove 78 of the guardband, but this is notessential.

[0295] Next, the heated cover is slid over the samples, and the heatedplaten is screwed down as previously described until it contacts the topedge 346 of the frame 342.

[0296] Within seconds after the heated platen 14 in FIG. 19 touches thecaps, the caps begin to soften and yield under the downward pressurefrom the lead screw 312 in FIG. 19. The user then continues to turn toknob 318 until the index marks 332 and 334 in FIG. 20 line up whichindicates that every sample tube has been tightly pressed into thesample block with at least the minimum threshold force F and all airgaps between the heated platen 14, the sample block and the top edge 346of the frame 342 have been tightly closed. The sample tubes are now in acompletely closed and controlled environment, and precision cycling oftemperature can begin.

[0297] At the end of the PCR protocol, the heated platen 14 is movedupward and away from the sample tubes, and the heated cover 316 is slidout of the way to expose the frame 342 and sample tubes. The frame,sample tubes and retainer are then removed and replaced into an emptybase, and the caps can be removed. As each cap or string of caps ispulled off, the retainer keeps the tube from coming out of the tray.Ribs formed in the base (not shown in FIGS. 38-44) contact the retainertabs 414A and 414B shown in FIG. 33 to keep the retainer snapped inplace such that the force exerted on the tubes by removing the caps doesnot dislodge the retainer 386.

[0298] Obviously, the frame 342 may be used with fewer than 96 tubes ifdesired. Also, the retainer 386 can be removed if desired by unsnappingit.

[0299] A user who wishes to run only a few tubes at a time and handlethese tubes individually can place an empty frame 342 without retaineron the sample block. The user may then use the base as a “test tuberack” and set up a small number of tubes therein. These tubes can thenbe filled manually and capped with individual caps. The user may thentransfer the tubes individually into wells in the sample block, closethe heated cover and screw down the heated platen 14 until the marksline up. PCR cycling may then commence. When the cycling is complete,the cover 316 is removed and the sample tubes are individually placed inan available base. The retainer is not necessary in this type of usage.

[0300] Referring to FIG. 50, there is shown a cross-sectional view of alarger volume, thin walled reaction tube marketed under the trademarkMAXIAMP. This tube is useful for PCR reactions wherein reagents or othermaterials need to be added to the reaction mixture which will being thetotal volume to greater than 200 microliters. The larger tube shown inFIG. 50 made of Himont PD701 polypropylene or Valtec HH-444polypropylene and has a thin wall in contact with the sample block.Whatever material is selected should be compatible with the DNA andother components of the PCR reaction mixture so as to not impair PCRreaction processing such as by having the target DNA stick to the wallsand not replicate. Glass is generally not a good choice because DNA hasbeen known to stick to the walls of glass tubes.

[0301] The dimension A in FIG. 50 is typically 0.012±0.001 inches (halfthe thickness of cylindrical wall section D) and the wall angle relativeto the longitudinal axis of the tube is typically 17°. The advantage ofa 17° wall angle is that while downward force causes good thermalcontact with the sample block, the tubes do not jam in the sample wells.The advantage of the thin walls is that it minimizes the delay betweenchanges in temperature of the sample block and corresponding changes intemperature of the reaction mixture. This means that if the user wantsthe reaction mixture to remain within 1° C. of 94° C. for 5 seconds inthe denaturation segment, and programs in these parameters, he or shegets the 5 second denaturation interval with less time lag than withconventional tubes with thicker walls. This performance characteristicof being able to program a short soak interval such as a 5 seconddenaturation soak and get a soak at the programmed temperature for theexact programmed time is enabled by use of a calculated sampletemperature to control the timer. In the system described herein, thetimer to time an incubation or soak interval is not started until thecalculated sample temperature reaches the programmed soak temperature.

[0302] Further, with the thin walled sample tubes, it only takes aboutone-half to two-thirds as long for the sample mixture to get within 1°C. of the target temperature as with prior art thick-walledmicrocentrifuge tubes and this is true both with the tall MAXIAMP™ tubeshown in FIG. 50 and the smaller thin walled MICROAMP™ tube shown inFIG. 15.

[0303] The wall thickness of both the MAXIAMP™ and MICROAMP™ tubes iscontrolled tightly in the manufacturing process to be as thin aspossible consistent with adequate structural strength. Typically, forpolypropylene, this will be anywhere from 0.009 to 0.012 inches. If new,more exotic materials which are stronger than polypropylene are used toachieve the advantage of speeding up the PCR reaction, the wallthickness can be less so long as adequate strength is maintained towithstand the downward force to assure good thermal contact, and otherstresses of normal use. With a height (dimension B in FIG. 50) of 1.12inches and a dimension C of 0.780 inches, the MAXIAMP tube's timeconstant is approximately 14 seconds although this has not beenprecisely measured as of the time of filing. The MICROAMP tube timeconstant for the shorter tube shown in FIG. 15 is typicallyapproximately 9.5 seconds with a tube wall thickness in the conicalsection of 0.009 inches plus or minus 0.001 inches.

[0304]FIG. 51 shows the results of use of the thinner walled MICROAMPtube. A similar speeded up attainment of target temperatures will resultfrom use of the thin walled MAXIAMP tube.

[0305] Referring to FIG. 51, there is shown a graph of the relativetimes for the calculated sample temperature in a MICROAMP tube versusthe time for a prior art tube to reach a temperature within 1° C. of atarget denaturation temperature of 94° C. from a starting temperature of72° C. In FIG. 51, a 100 microliter sample was present in each tube. Thecurve with data points marked by open boxes is the calculated sampletemperature response for a MICROAMP tube with a 9.5 second response timeand a 0.009 inch wall thickness. The curve with data points marked byX's represents the calculated sample temperature for a 100 microlitersample in a prior art, thick walled microcentrifuge tube with a 0.030inch wall thickness. This graph shows that the thin walled MICROAMP tubesample reaches a calculated temperature within 1° C. of the 94° C.target soak temperature within approximately 36 seconds while the priorart tubes take about 73 seconds. This is important because ininstruments which do not start their timers until the soak temperatureis substantially achieved, the prior art tubes can substantiallyincrease overall processing time especially when considered in light ofthe fact that each PCR cycle will have at least two ramps and soaks andthere are generally very many cycles performed. Doubling the ramp timefor each ramp by using prior art tubes can therefore drasticallyincrease processing time. In systems which start their times based uponblock/bath/oven temperature without regard to actual sample temperature,these long delays between changes in block/bath/oven temperature andcorresponding changes in sample mixture temperature can have seriousnegative consequences. The problem is that the long delay can cut intothe time that the reaction mixture is actually at the temperatureprogrammed for a soak. For very short soaks as are popular in the latestPCR processes, the reaction mixture may never actually reach theprogrammed soak temperature before the heating/cooling system startsattempting to change the reaction mixture temperature.

[0306]FIG. 50 shows a polypropylene cap 650 connected to the MAXIAMPsample tube by a plastic web 652. The outside diameter E of the cap andthe inside diameter F of the tube upper section are sized for aninterference fit of between 0.002 and 0.005 inches. The thickness of thewall and dome portions of the cap in a preferred embodiment isapproximately 0.020 inches. The inside surface 654 of the tube should befree of flash, nicks and scratches so that a gas-tight seal with the capcan be formed.

[0307]FIG. 52 shows a plan view of the tube 651, the cap 650 and the web652. A shoulder 656 prevents the cap from being pushed too far down intothe tube and allows sufficient projection of the cap above the top edgeof the sample tube for making contact with the heated platen. This alsoallows sufficient cap deformation such that the minimum acceptable forceF in FIG. 15 can be applied by deformation of the cap.

[0308] In the preferred embodiment, the tube and cap are made of HimontPD701 polypropylene which is autoclavable at temperatures up to 126° C.for times up to 15 minutes. This allows the disposable tubes to besterilized before use. Since the caps are permanently deformed in use inmachines with heated platens, the tubes are designed for use only once.

[0309] Caps for the MICROAMP tubes are available in connected strips of8 or 12 caps with each cap numbered or as individual caps. Single rowsof caps may be used and the rows may be easily shortened to as few asdesired or individual caps may be cut off the strip. Caps for MAXIAMPtubes are either attached as shown in FIG. 50, or are separateindividual caps.

[0310] The maximum volume for post-PCR reagent additions to permitmixing on the MICROAMP tube is 200 microliters and is up to 500microliters for the MAXIAMP tube. Temperature limits are −70° C. to 126°C.

[0311] The response time depends upon the volume of the sample. Responseis measured as the time for the sample to come within 37% of the newtemperature when the block suddenly changes temperature. Typicalresponse time for a 50 microliter fill are 7.0 seconds and for a 20microliter fill are 5.0 seconds.

Electronics and Software Version 1

[0312] Referring to FIGS. 47A and 47B (hereafter FIG. 47), there isshown a block diagram for the electronics of a preferred embodiment of acontrol system in a class of control systems represented by CPU block 10in FIG. 1. The purpose of the control electronics of FIG. 47 is, interalia, to receive and store user input data defining the desired PCRprotocol, read the various temperature sensors, calculate the sampletemperature, compare the calculated sample temperature to the desiredtemperature as defined by the user defined PCR protocol, monitor thepower line voltage and control the film heater zones and the rampcooling valves to carry out the desired temperature profile of the userdefined PCR protocol.

[0313] A microprocessor (hereafter CPU) 450 executes the control programdescribed below and given in Microfiche Appendix C in source code form.In the preferred embodiment, the CPU 450 is an OKI CMOS 8085. The CPUdrives an address bus 452 by which various ones of the other circuitelements in FIG. 47 are addressed. The CPU also drives a data bus 454 bywhich data is transmitted to various of the other circuit elements inFIG. 47.

[0314] The control program of Microfiche Appendix C and some systemconstants are stored in EPROM 456. User entered data and other systemconstants and characteristics measured during the install process(install program execution described below) are stored in battery backedup RAM 458. A system clock/calendar 460 supplies the CPU 450 with dateand time information for purposes of recording a history of eventsduring PCR runs and the duration of power failures as described below inthe description of the control software.

[0315] An address decoder 462 receives and decodes addresses from theaddress bus 452 and activates the appropriate chip select lines on achip select bus 464.

[0316] The user enters PCR protocol data via a keyboard 466 in responseto information displayed by CPU on display 468. The two waycommunication between the user and the CPU 450 is described in moredetail below in the user interface section of the description of thecontrol software. A keyboard interface circuit 470 converts userkeystrokes to data which is read by the CPU via the data bus 454.

[0317] Two programmable interval timers 472 and 474 each containcounters which are loaded with counts calculated by the CPU 450 tocontrol the intervals during which power is applied to the various filmheater zones.

[0318] An interrupt controller 476 sends interrupt requests to the CPU450 every 200 milliseconds causing the CPU 450 to run the PID taskdescribed below in the description of the control software. This taskreads the temperature sensors and calculates the heating or coolingpower necessary to move the sample temperature from its current level tothe level desired by the user for that point in time in the PCR protocolbeing executed.

[0319] A UART 478 services an RS232 interface circuit 480 such that datastored in the RAM 480 may be output to a printer. The control softwaremaintains a record of each PCR run which is performed with respect tothe actual temperatures which existed at various times during the runfor purposes of user validation that the PCR protocol actually executedcorresponded to the PCR protocol desired by the user. In addition, userentered data defining the specific times and temperatures desired duringa particular PCR protocol is also stored. All this data and other dataas well may be read by the CPU 450 and output to a printer coupled tothe RS232 port via the UART 478. The RS232 interface also allows anexternal computer to take control of the address and data buses forpurposes of testing.

[0320] A peripheral interface chip (hereafter PIC) 482 serves as aprogrammable set of 4 input/output registers. At power-up, the CPU 450selects the PIC 482 via the address decoder 462 and the 35 chip selectbus 464. The CPU then writes a data word to the PIC via data bus 454 toprogram the PIC 482 regarding which registers are to be output ports andwhich are to be input ports. Subsequently, the CPU 450 uses the outputregisters to store data words written therein by the CPU via the databus 454 to control the internal logic state of a programmable arraylogic chip (PAL) 484.

[0321] The PAL 484 is a state machine which has a plurality of inputsignals and a plurality of output signals. PAL's in general contain anarray of logic which has a number of different states. Each state isdefined by the array or vector of logic states at the inputs and eachstate results in a different array or vector of logic states on theoutputs. The CPU 450, PIC 482, PAL 484 and several other circuits to bedefined below cooperate to generate different states of the variousoutput signals from the PAL 484. These different states and associatedoutput signals are what control the operation of the electronics shownin FIG. 47 as will be described below.

[0322] A 12 bit analog-to-digital converter (A/D) 486 converts analogvoltages on lines 488 and 490 to digital signals on data bus 454. Theseare read by the CPU by generating an address for the A/D converter suchthat a chip select signal on bus 464 coupled to the chip select input ofthe A/D converter goes active and activates the converter. The analogsignals on lines 488 and 490 are the output lines of two multiplexers492 and 494. Multiplexer 492 has four inputs ports, each having twosignal lines. Each of these ports is coupled to one of the fourtemperature sensors in the system. The first port is coupled to thesample block temperature sensor. The second and third ports are coupledto the coolant and ambient temperature sensors, respectively and thefourth port is coupled to the heated cover temperature sensor. A typicalcircuit for each one of these temperature sensors is shown in FIG. 48. A20,000 ohm resistor 496 receives at a node 497 a regulated +15 voltregulated power supply 498 in FIG. 47 via a bus connection line which isnot shown. This +15 volts D.C. signal reverse biases a zener diode 500.The reverse bias current and the voltage drop across the zener diode arefunctions of the temperature. The voltage drop across the diode is inputto the multiplexer 292 via lines 502 and 504. Each temperature sensorhas a similar connection to the multiplexer 292.

[0323] Multiplexer 494 also has 4 input ports but only three areconnected. The first input port is coupled to a calibration voltagegenerator 506. This voltage generator outputs two precisely controlledvoltage levels to the multiplexer inputs and is very thermally stable.That is, the reference voltage output by voltage source 506 drifts verylittle if at all with temperature. This voltage is read from time totime by the CPU 450 and compared to a stored constant which representsthe level this reference voltage had at a known temperature as measuredduring execution of the install process described below. If thereference voltage has drifted from the level measured and stored duringthe install process, the CPU 450 knows that the other electroniccircuitry used for sensing the various temperatures and line voltageshas also drifted and adjusts their outputs accordingly to maintain veryaccurate control over the temperature measuring process.

[0324] The other input to the multiplexer 494 is coupled via line 510 toan RMS-to-DC converter circuit 512. This circuit has an input 514coupled to a step-down transformer 516 and receives an A.C. voltage atinput 514 which is proportional to the then existing line voltage atA.C. power input 518. The RMS-to-DC converter 512 rectifies the A.C.voltage and averages it to develop a D.C. voltage on line 510 which alsois proportional to the A.C. input voltage on line 518.

[0325] Four optically coupled triac drivers 530, 532, 534 and 536receive input control signals via control bus 538 from PAL logic 484.Each of the triac drivers 530, 532 and 534 controls power to one of thethree film heater zones. These heater zones are represented by blocks254, 260/262 and 256/258 (the same reference numerals used in FIG. 13).The triac driver 536 controls power to the heated cover, represented byblock 544 via a thermal cut-out switch 546. The heater zones of the filmheater are protected by a block thermal cutout switch 548. The purposeof the thermal cutout switches is to prevent meltdown of the filmheater/sample block on the heated cover in case of a failure leading tothe triac drivers being left on for an unsafe interval. If such an eventhappens, the thermal cut-out switches detect an overly hot condition,and shut down the triacs via signals on lines 552 or 554.

[0326] The main heater zone of the film heater is rated at 360 wattswhile the manifold and edge heater zones are rated at 180 watts and 170watts respectively. The triac drivers are Motorola MAC 15A10 15 amptriacs. Each heater zone is split into 2 electrically isolated sectionseach dissipating ½ the power. The 2 halves are connected in parallel forline voltages at 518 less than 150 volts RMS. For line voltages greaterthan this, the two halves are connected in series. These alternateconnections are accomplished through a “personality” plug 550.

[0327] The AC power supply for the film heater zones is line 559, andthe AC supply for the heated cover is via line 560.

[0328] A zero crossing detector 566 provides basic system timing byemitting a pulse on line 568 at each zero crossing of the AC power online 518. The zero crossing detector is a National LM 311N referenced toanalog ground and has 25 mV of hysteresis. The zero crossing detectortakes its input from transformer 516 which outputs A.C. signal from 0 to5.52 volts for an A.C. input signal of from 0 to 240 volts A.C.

[0329] A power transformer 570 supplies A.C. power to the pump 41 thatpumps coolant through the ramp and bias cooling channels. Therefrigeration unit 40 also receives its A.C. power from the transformer570 via another portion of the personality plug 550. The transformer 550also supplies power to three regulated power supplies 572, 498 and 574and one unregulated power supply 576.

[0330] For accuracy purposes in measuring the temperatures, thecalibration voltage generator 506 uses a series of very precise,thin-film, ultralow temperature drift 20K ohm resistors (not shown inFIG. 47 but shown as resistors RA1 in the schematics of MicroficheAppendix E). These same ultralow drift resistors are used to set thegain of an analog amplifier 578 which amplifies the output voltage fromthe selected temperature sensor prior to conversion to a digital value.These resistors drift only 5 ppm/° C.

[0331] All the temperature sensors are calibrated by placing them(separated from the structures whose temperatures they measure) first ina stable, stirred-oil, temperature controlled bath at 40° C. andmeasuring the actual output voltages at the inputs to the multiplexer492. The temperature sensors are then placed in a bath at a temperatureof 95° C. and their output voltages are again measured at the samepoints. The output voltage of the calibration voltage generator 506 isalso measured at the input of the multiplexer 494. For each temperature,the digital output difference from the A/D converter 486 between each ofthe temperature sensor outputs and the digital output that results fromthe voltage generated by the calibration voltage generator 506 ismeasured. The calibration constants for each temperature sensor tocalibrate each for changes in temperature may then be calculated.

[0332] The sample block temperature sensor is then subjected to afurther calibration procedure. This procedure involves driving thesample block to two different temperatures. At each temperature level,the actual temperature of the block in 16 different sample wells ismeasured using 16 RTD thermocouple probes accurate to within 0.02° C. Anaverage profile for the temperature of the block is then generated andthe output of the A/D converter 464 is measured with the blocktemperature sensor in its place in the sample block. This is done atboth temperature levels. From the actual block temperature as measuredby the RTD probes and the A/D output for the block temperature sensor, afurther calibration factor can be calculated. The temperaturecalibration factors so generated are stored in battery backed up RAM458. Once these calibration factors are determined for the system, it isimportant that the system not drift appreciably from the electricalcharacteristics that existed at the time of calibration. It is importanttherefore that low drift circuits be selected and that ultralow driftresistors be used. The selections made for the analog components for anexemplary embodiment are given in Microfiche Appendix E.

[0333] The manner in which the CPU 450 controls the sample blocktemperature can be best understood by reference to the section belowdescribing the control program. However, to illustrate how theelectronic circuitry of FIG. 47 cooperates with the control software tocarry out a PCR protocol consider the following.

[0334] The zero crossing detector 566 has two outputs in output bus 568.One of these outputs emits a negative going pulse for every positivegoing transition of the A.C. signal across the zero voltage reference.The other emits a negative pulse upon every negative-going transition ofthe A.C. signal across the zero reference voltage level. These twopulses, shown typically at 580 define one complete cycle or two halfcycles. It is the pulse trains on bus 568 which define the 200millisecond sample periods. For 60 cycle/sec A.C. as found in the U.S.,200 milliseconds contains 24 half cycles.

[0335] A typical sample period is shown in FIG. 49. Each “tick” mark inFIG. 49 represents one half cycle. During each 200 msec sample period,the CPU 450 is calculating the amount of heating or cooling power neededto maintain the sample block temperature at a user defined setpoint orincubation temperature or to move the block temperature to a newtemperature depending upon where in the PCR protocol time line theparticular sample period lies. The amount of power needed in each filmheater zone is converted into a number of half cycles each heater zoneis to remain off during the next 200 msec sample period. Just before theend of the current sample period in which these calculations are made,the CPU 450 addresses each of the 4 timers in the programmable intervaltimer (PIT) 472. To each timer, the CPU writes data constituting a“present” count representing the number of half cycles the heater zoneassociated with that timer is to remain off in the next sample period.In FIG. 49, this data is written to the timers during interval 590 justpreceding the starting time 592 of the next sample period. Assume that arapid ramp up to the denaturation temperature of 94° C. is called for bythe user setpoint data for an interval which includes the sampleinterval between times 592 and 594. Accordingly, the film heaters willbe on for most of the period. Assume that the central zone heater is tobe on for all but three of the half cycles during the sample period. Inthis case, the CPU 450 writes a three into the counter in PIT 472associated with the central zone heater during interval 590. This writeoperation automatically causes the timer to issue a “shut off” signal onthe particular control line of bus 592 which controls the central zoneheater. This “shut off” signal causes the PAL 484 to issue a “shut off”signal on the particular one of the signal lines in bus 538 associatedwith the central zone. The triac driver 530 then shuts off at the nextzero crossing, i.e., at time 592. The PIT receives a pulse train ofpositive-going pulses on line 594 from the PAL 484. These pulses aretranslations of the zero-crossing pulses on 2-line bus 568 by PAL 484into positive going pulses at all zero crossing pulses on 2-line bus 568by PAL 484 into positive going pulses at all zero crossings on a singleline, i.e., line 594. The timer in PIT 472 associated with the centralfilm heater zone starts counting down from its present count of 3 usingthe half cycle marking pulses on line 594 as its clock. At the end ofthe third half cycle, this timer reaches 0 and causes its output signalline on bus 592 to change states. This transition from the off to onstate is shown at 596 in FIG. 49. This transition is communicated to PAL484 and causes it to change the state of the appropriate output signalon bus 538 to switch the triac driver 530 on at the third zero-crossing.Note that by switching the triacs on at the zero crossings as is done inthe preferred embodiment, switching off of a high current flowingthrough an inductor (the film heater conductor) is avoided. Thisminimizes the generation of radio frequency interference or other noise.Note that the technique of switching a portion of each half cycle to thefilm heater in accordance with the calculated amount of power neededwill also work as an alternative embodiment, but is not preferredbecause of the noise generated by this technique.

[0336] The other timers of PIT 472 and 474 work in a similar manner tomanage the power applied to the other heater zones and to the heatedcover in accordance with power calculated by the CPU.

[0337] Ramp cooling is controlled by CPU 450 directly through theperipheral interface 482. When the heating/cooling power calculationsperformed during each sample period indicate that ramp cooling power isneeded, the CPU 450 addresses the peripheral interface controller (PIC)482. A data word is then written into the appropriate register to driveoutput line 600 high. This output line triggers a pair of monostablemultivibrators 602 and 604 and causes each to emit a single pulse, onlines 606 and 608, respectively. These pulses each have peak currentsjust under 1 ampere and a pulse duration of approximately 100milliseconds. The purpose of these pulses is to drive the solenoid valvecoils that control flow through the ramp cooling channels very hard toturn on ramp cooling flow quickly. The pulse on line 606 causes a driver610 to ground a line 612 coupled to one side of the solenoid coil 614 ofone of the solenoid operated valves. The other terminal of the coil 614is coupled to a power supply “rail” 616 at +24 volts DC from powersupply 576. The one shot 602 controls the ramp cooling solenoid operatedvalve for flow in one direction, and the one shot 604 controls thesolenoid operated valve for flow in the opposite direction.

[0338] Simultaneously, the activation of the RCOOL signal on line 600causes a driver 618 to be activated. This driver grounds the line 612through a current limiting resistor 620. The value of this currentlimiting resistor is such that the current flowing through line 622 isat least equal to the hold current necessary to keep the solenoid valve614 open. Solenoid coils have transient characteristics that requirelarge currents to turn on a solenoid operated valve but substantiallyless current to keep the valve open. When the 100 msec pulse on line 606subsides, the driver 612 ceases directly grounding the line 612 leavingonly the ground connection through the resistor 620 and driver 618 forholding current.

[0339] The solenoid valve 614 controls the flow of ramp cooling coolantthrough the sample block in only ½ the ramp cooling tubes, i.e., thetubes carrying the coolant in one direction through the sample block.Another solenoid operated valve 624 controls the coolant flow of coolantthrough the sample block in the opposite direction. This valve 624 isdriven in exactly the same way as solenoid operated valve 614 by drivers626 and 628, one shot 604 and line 608.

[0340] The need for ramp cooling is evaluated once every sample period.When the PID task of the control software determines from measuring theblock temperature and comparing it to the desired block temperature thatramp cooling is no longer needed, the RCOOL signal on line 600 isdeactivated. This is done by the CPU 450 by addressing the PIC 482 andwriting data to it which reverses the state of the appropriate bit inthe register in PIC 482 which is coupled to line 600.

[0341] The logic equations for PAL 484 are attached hereto as MicroficheAppendix D. The logic equations for the address decoder 462, which isalso programmable array logic, are also attached hereto is MicroficheAppendix D.

[0342] The PIT 474 also has two other timers therein which time a 20 Hzinterrupt and a heating LED which gives a visible indication when thesample block is hot and unsafe to touch.

[0343] The system also includes a beeper one shot 630 and a beeper 632to warn the user when an incorrect keystroke has been made.

[0344] The programmable interrupt controller 476 is used to detect 7interrupts; Level 1—test; Level 2—20 Hz; Level 3—Transmit Ready; Level4—Receive ready; Level 5—Keyboard interrupt; Level 6—Main heater turnon; and, Level 7—A.C. line zero cross.

[0345] The programmable peripheral interface 482 has four outputs (notshown) for controlling the multiplexers 492 and 494. These signals MUX1EN and MUX2 EN enable one or the other of the two multiplexers 492 and494 while the signals MUX O and MUX 1 control which channel is selectedfor input to the amplifier 578. These signals are managed so that onlyone channel from the two multiplexers can be selected at any one time.

[0346] An RLTRIG* signal resets a timeout one shot 632 for the heaterswhich disables the heaters via activation of the signal TIMEOUT EN* tothe PAL 484 if the CPU crashes. That is, the one shot 632 has apredetermined interval which it will wait after each reset before itactivates the signal TIMEOUT EN* which disables all the heater zones.The CPU 450 executes a routine periodically which addresses the PIC 482and writes data to the appropriate register to cause activation of asignal on line 634 to reset the one shot 632. If the CPU 450 “crashes”for any reason and does not execute this routine, the timeout one-shot632 disables all the heater zones.

[0347] The PIC 482 also has outputs COVHTREEN* and BLKHTREN* (not shown)for enabling the heated cover and the sample block heater. Both of thesesignals are active low and are controlled by the CPU 450. They areoutput to the PAL 484 via bus 636.

[0348] The PIC 482 also outputs the signals BEEP and BEEPCLR* on bus 640to control the beeper one shot 630.

[0349] The PIC 482 also outputs a signal MEM1 (not shown) which is usedto switch pages between the high address section of EPROM 456 and thelow address section of battery RAM 458. Two other signals PAGE SEL 0 andPAGE SEL 1 (not shown) are output to select between four 16K pages inEPROM 456.

[0350] The four temperature sensors are National LM 135 zener diode typesensors with a zener voltage/temperature dependence of 10 mV/° K. Thezener diodes are driven from the regulated power supply 498 through the20K resistor 496. The current through the zeners varies fromapproximately 560 μA to 615 μA over the 0° C. to 100° C. operatingrange. The zener self heating varies from 1.68 mW to 2.10 mW over thesame range.

[0351] The multiplexers 492 and 494 are DG409 analog switches. Thevoltages on lines 488 and 490 are amplified by an AD625KNinstrumentation amplifier with a transfer function ofV_(OUT)=3*V_(IN)−7.5. The A/D converter 486 is an AD7672 with an inputrange from 0-5 volts. With the zener temperature sensor output from 2.73to 3.73 volts over the 0° C. to 100° C. range, the output of theamplifier 578 will be 0.69 volts to 3.69 volts, which is comfortablywithin the A/D input range.

[0352] The keys to highly accurate system performance are good accuracyand low drift with changes in ambient temperature. Both of these goalsare achieved by using a precision voltage reference source, i.e.,calibration voltage generator 506, and continuously monitoring itsoutput through the same chain of electronics as are used to monitor theoutputs of the temperature sensors and the AC line voltage on line 510.

[0353] The calibration voltage generator 506 outputs two precisionvoltages on lines 650 and 652. One voltage is 3.75 volts and the otheris 3.125 volts. These voltages are obtained by dividing down a regulatedsupply voltage using a string of ultralow drift, integrated, thin filmresistors with a 0.05% match between resistors and a 5 ppm/degree C.temperature drift coefficient between resistors. The calibration voltagegenerator also generates −5 volts for the A/D converter referencevoltage and 7.5 volts for the instrumentation amplifier offset. Thesetwo voltages are communicated to the A/D 486 and the amplifier 578 bylines which are not shown. These two negative voltages are generatedusing the same thin film resistor network and OP 27 GZ op-amps (notshown). The gain setting resistors for the operational amplifier 578 arealso the ultralow drift, thin-film, integrated, matched resistors.

[0354] The control firmware, control electronics and the block designare designed such that well-to-well and instrument-to-instrumenttransportability of PCR protocols is possible.

[0355] High throughput laboratories benefit from instruments which areeasy to use for a wide spectrum of lab personnel and which require aminimal amount of training. The software for the invention was developedto handle complex PCR thermocycling protocols while remaining easy toprogram. In addition, it is provided with safeguards to assure theintegrity of samples during power interruptions, and can document thedetailed events of each run in safe memory.

[0356] After completing power-up self-checks shown in FIGS. 53 and 54,and described more fully in Microfiche Appendix B, to assure theoperator that the system is operating properly, the user interface ofthe invention offers a simple, top-level menu inviting the user to run,create or edit a file, or to access a utility function. No programmingskills are required, since pre-existing default files can be quicklyedited with customized times and temperatures, then stored in memory forlater use. A file protection scheme prevents unauthorized changes to anyuser's programs. A file normally consists of a set of instructions tohold a desired temperature or to thermocycle. Complex programs arecreated by linking files together to form a method. A commonly usedfile, such as a 4° C. incubation following a thermocycle, can be storedand then incorporated into methods created by other users. A new type offile, the AUTO file is a PCR cycling program which allows the user tospecify which of several types of changes to control parameters willoccur each cycle: time incrementing (auto segment extension, for yieldenhancement), time decrementing, or temperatur incrementing ordecrementing For the highest degree of control precision and mostreliable methods transferability, temperatures are setable to 0.1° C.,and times are programmed to the nearest second. The invention has theability to program a scheduled PAUSE at one or more setpoints during arun for reagent additions or for removal of tubes at specific cycles.

[0357] The system of the invention has the ability to store a 500 recordhistory file for each run. This feature allows the user to review theindividual steps in each cycle and to flag any special status or errormessages relating to irregularities. With the optional printer, theinvention provides hardcopy documentation of file and method parameters,run-time time/temperature data with a time/date stamp, configurationparameters, and sorted file directories.

[0358] In order to assure reproducible thermocycling, the computedsample temperature is displayed during the ramp and hold segments ofeach cycle. A temperature one degree different than the set temperatureis normally used to trigger the ramp-time and hold-time clocks, but thiscan be altered by the user. Provided the proper time constant for thetype of tube and volume is used (described more fully elsewhere herein),the sample will always approach the desired sample temperature with thesame accuracy, regardless of whether long or short sample incubationtimes have been programmed. Users can program slow ramps for thespecialized annealing requirements of degenerate primer pools, or veryshort (1-5 sec) high-temperature denaturation periods for very GC richtargets. Intelligent defaults are preprogrammed for 2- and 3-temperaturePCR cycles.

[0359] Diagnostic tests can be accessed by any users to check theheating and cooling system status, since the software gives Pass/Failreports. In addition, a system performance program performs acomprehensive subsystem evaluation and generates a summary statusreport.

[0360] The control firmware is comprised of several sections which arelisted below:

[0361] Diagnostics

[0362] Calibration

[0363] Install

[0364] Real time operating system

[0365] Nine prioritized tasks that manage the system

[0366] Start-up sequence

[0367] User interface

[0368] The various sections of the firmware will be described witheither textual description, pseudocode or both. The actual source codein C language is included below as Microfiche Appendix C.

[0369] Features of the firmware are:

[0370] 1. A Control system that manages the average sample blocktemperature to within +/−0.1° C. as well as maintaining the temperaturenon-uniformity as between wells in the sample block to within +/−0.5° C.

[0371] 2. A temperature control system that measures and compensates forline voltage fluctuations and electronic temperature drift.

[0372] 3. Extensive power up diagnostics that determine if systemcomponents are working.

[0373] 4. Comprehensive diagnostics in the install program which qualifythe heating and cooling systems to insure they are working properly.

[0374] 5. A logical and organized user interface, employing a menudriven system that allows instrument operation with minimal dependencyon the operators manual.

[0375] 6. The ability to link up to 17 PCR protocols and store them as amethod.

[0376] 7. The ability to store up to 150 PCR protocols and methods inthe user interface.

[0377] 8. A history file that records up to 500 events of the previousrun as part of the sequence task.

[0378] 9. The ability to define the reaction volume and tube size typeat the start of a run for maximum temperature accuracy and control aspart of the user interface and which modifies tau (the tube timeconstant) in the PID task.

[0379] 10. Upon recovery from a power failure, the system drives thesample block to 4° C. to save any samples that may be loaded in thesample compartment. The analyzer also reports the duration of the powerfailure as part of the start-up sequence.

[0380] 11. The ability to print history file contents, “run time”parameters and stored PCR protocol parameters as part of the print task.

[0381] 12. The ability to configure the temperature to which theapparatus will return during any idle state.

[0382] 13. The ability to check that the setpoint temperature is reachedwithin a reasonable amount of time.

[0383] 14. The ability to control the instrument remotely via an RS232port.

[0384] There are several levels of diagnostics which are describedbelow:

[0385] A series of power-up tests are automatically performed each timethe instrument is turned on. They evaluate critical areas of thehardware without user intervention. Any test that detects a componentfailure will be run again. If the test fails twice, an error message isdisplayed and the keyboard is electronically locked to prevent the userfrom continuing.

[0386] The following areas are tested:

[0387] Programmable Peripheral Interface device

[0388] Battery RAM device

[0389] Battery RAM checksum

[0390] EPROM devices

[0391] Programmable Interface Timer devices

[0392] Clock/Calendar device

[0393] Programmable Interrupt Controller device

[0394] Analog to Digital section

[0395] Temperature sensors

[0396] Verify proper configuration plug

[0397] A Series of service only diagnostics are available to finaltesters at the manufacturer's location or to field service engineersthrough a “hidden” keystroke sequence (i.e. unknown to the customer).Many of the tests are the same as the ones in the start up diagnosticswith the exception that they can be continually executed up to 99 times.

[0398] The following areas are tested:

[0399] Programmable Peripheral Interface device

[0400] Battery RAM device

[0401] Battery RAM checksum

[0402] EPROM devices

[0403] Programmable Interface Timer devices

[0404] Clock/Calendar device

[0405] Programmable Interrupt Controller device

[0406] Analog to Digital section

[0407] RS-232 section

[0408] Display section

[0409] Keyboard

[0410] Beeper

[0411] Ramp Cooling Valves

[0412] Check for EPROM mismatch

[0413] Firmware version level

[0414] Battery RAM Checksum and Initialization

[0415] Autostart Program Flag

[0416] Clear Calibration Flag

[0417] Heated Cover heater and control circuitry

[0418] Edge heater and control circuitry

[0419] Manifold heater and control circuitry

[0420] Central heater and control circuitry

[0421] Sample block thermal cutoff test

[0422] Heated cover thermal cutoff test

[0423] User diagnostics are also available to allow the user to performa quick cool and heat ramp verification test, an extensive confirmationof the heating and cooling system. These diagnostics also allow the userto view the history file, which is a sequential record of events thatoccurred in the previous run. The records contain time, temperature,setpoint number, cycle number, program number and status messages.

[0424] Remote Diagnostics are available to allow control of the systemfrom an external computer via the RS-232 port. Control is limited to theservice diagnostics and instrument calibration only.

[0425] Calibration to determine various parameters such as heaterresistance, etc. is performed. Access to the calibration screen islimited by a “hidden” key sequence (i.e. unknown to the customer). Thefollowing parameters are calibrated:

[0426] The configuration plug is a module that rewires the chiller unit,sample block heaters, coolant pump and power supplies for the propervoltage and frequency (100V/50 Hz, 100/60 Hz, 120/60 Hz, 220/50 Hz or230/50 Hz). The user enters the type of configuration plug installed.The firmware uses this information to compute the equivalent resistanceof the sample block heaters. Upon power-up, the system verifies that theconfiguration plug selected is consistent with the current line voltageand frequency.

[0427] The heater resistance must be determined in the calibrationprocess so that precise calculations of heater power delivered can bemade. The user enters the actual resistances of the six sample blockheaters (two main heaters, two manifold heaters and two edge heaters).The configuration plug physically wires the heater in series for 220-230VAC and in parallel for 100-120 VAC operation. The firmware computes theequivalent resistance of each of the three heaters by the followingformula:

For 100-120 VAC: R _(eq)=(R ₁ *R ₂)/R ₂ +R ₂  (7)

For 220-230 VAC: R _(eq) =R ₁ +R ₂  (8)

[0428] The equivalent resistance is used to deliver a precise amount ofheating power to the sample block (Power=Voltage²×Resistance).

[0429] The calibration of the A/D circuit is necessary so thattemperatures can be precisely measured. This is performed by measuringtwo test point voltages (TP6 and TP7 on the CPU board) and entering themeasured voltages. The output of the A/D at each voltage forms the basisof a two point calibration curve. These voltages are derived from a 5volt precision source and are accurate and temperature independent. Atthe start of each run, these voltages are read by the system to measureelectronic drift due to temperature because any changes in A/D output isdue to temperature dependencies in the analog chain (multiplexer, analogamplifier and A/D converter).

[0430] Calibration of the four temperature sensors (sample block,ambient, coolant and heated cover) is performed for accurate temperaturemeasurements. Prior to installation into an instrument, the ambient,coolant, and heated cover temperature sensors are placed in a water bathwhere their output is recorded (XX.X° C. at YYYY mV). These values arethen entered into the system. Since temperature accuracy in these areasis not critical, a one point calibration curve is used.

[0431] The sample block sensor is calibrated in the instrument. An arrayof 15 accurate temperature probes is strategically placed in the sampleblock in the preferred embodiment. The output of the temperature probesis collected and averaged by a computer—The firmware commands the blockto go to 40° C. After a brief stabilizing period the user enters theaverage block temperature as read by the 15 probes. This procedure isrepeated at 95° C., forming a two point calibration curve.

[0432] Calibration of the AC to DC line voltage sampling circuit isperformed by entering into the system the output of the AC to DC circuitfor two given AC input voltages, forming a two point calibration curve.The output of the circuit is not linear over the required range (90-260VAC) and therefore requires two points at each end (100 and 120, 220 and240 VAC), but only uses one set based on the current input voltage.

[0433] An accurate measure of AC voltage is necessary to deliver aprecise amount of power to the sample block (Power=Voltage²×Resistance).The Install program is a diagnostic tool that performs an extensive testof the cooling and heating systems.

[0434] Install measures or calculates control cooling conductance, rampcooling conductance at 10° C. and 18° C., cooling power at 10° C. and20° C., sample block thermal and coolant capacity and sample blocksensor lag. The purpose of install is three fold:

[0435] 1. To uncover marginal or faulty components.

[0436] 2. To use some of the measured values as system constants storedin battery backed up RAM to optimize the control system for a giveninstrument.

[0437] 3. To measure heating and cooling system degradation over time.

[0438] Install is executed once before the system is shipped and shouldalso be run before use or whenever a major component is replaced. TheInstall program may also be run by the user under the user diagnostics.

[0439] The heater ping test verifies that the heaters are properlyconfigured for the current line voltage (i.e. in parallel for 90-132 VACand in series for 208-264 VAC). The firmware supplies a burst of powerto the sample block and then monitors the rise in temperature over a 10second time period. If the temperature rise is outside a specified ramprate window, then the heaters are incorrectly wired for the current linevoltage and the install process is terminated.

[0440] The control cooling conductance tests measures the thermalconductance K_(cc) across the sample block to the control coolingpassages. This test is performed by first driving the sample blocktemperature to 60° C. (ramp valves are closed), then integrating theheater power required to maintain the block at 60° C. over a 30 secondtime period. The integrated power is divided by the sum of thedifference between the block and coolant temperature over the interval.

K _(cc)=ΣHeater Power_(60° C.)/ΣBlock−Coolant Temp  (9)

[0441] Typical values are 1.40 to 1.55 Watts/° C. A low K_(cc) mayindicate a clogged liner(s). A high K_(cc) may be due to a ramp valvethat is not completely closed, leakage of the coolant to the outsidediameter of the liner, or a liner that has shifted.

[0442] The block thermal capacity (Blk Cp) test measures the thermalcapacity of the sample block by first controlling the block at 35° C.then applying the maximum power to the heaters for 20 seconds. The blockthermal capacity is equal to the integrated power divided by thedifference in block temperature. To increase accuracy, the effect ofbias cooling power is subtracted from the integrated power.

Blk Cp=ramp time*(heater−control cool pwr)/delta temp.  (10)

[0443] where:

[0444] ramp time=20 seconds

[0445] heater power=500 watts

[0446] control cool=(Σblock−coolant temp)*K_(cc)

[0447] delta temp=TBlock_(t-20)−TBlock_(t-0)

[0448] The typical value of Block Cp is 540 watt-seconds/° C.±30.Assuming a normal K_(cc) value, an increase in block thermal capacity isdue to an increase in thermal loads, such as moisture in the foambacking, loss of insulation around the sample block, or a decrease inheater power such as a failure of one of the six heater zones or afailure of the electronic circuitry that drives the heater zones, or anincorrect or an incorrectly wired voltage configuration module.

[0449] A chiller test measures the system cooling output in watts at 10°C. and 18° C. The system cooling power, or chiller output, at a giventemperature is equal to the summation of thermal loads at thattemperature. The main components are: 1. heating power required tomaintain the block at a given temperature, 2. power dissipated by thepump used to circulate the coolant around the system, and 3. losses inthe coolant lines to the ambient. The chiller power parameter ismeasured by controlling the coolant temperature at either 10° C. or 18°C. and integrating the power applied to the sample block to maintain aconstant coolant temperature, over a 32 second interval. The differencebetween the block and coolant temperature is also integrated to computelosses to ambient temperature.

Chiller power=ΣHeating power+Pump power+(Kamb*Σ(blk-cool temp))  (11)

[0450] where:

[0451] heating power=Sum of heating power required to maintain coolantat 10° C. or 18° C. over time 32 seconds.

[0452] Pump Power=Circulating pump, 12 watts

[0453] Kamb=Conductance to ambient, 20 watts/° C.

[0454] blk-cool temp=Sum of difference in block and coolant temp overtime 32 seconds

[0455] The typical value for chiller power is 230 watts±40 at 10° C. and370 watts±30 at 18° C. Low chiller power may be due to an obstruction inthe fan path, a defective fan, or a marginal or faulty chiller unit. Itmay also be due to a miswired voltage configuration plug.

[0456] A ramp cooling conductance (K_(c)) test measures the thermalconductance at 10° C. and 18° C. across the sample block to the ramp andcontrol cooling passages. This test is performed by first controllingthe coolant temperature at 10° C. or 18° C., then integrating, over a 30second time interval, the heating power applied to maintain the coolantat the given temperature divided by the difference of block and coolanttemperature over the time interval.

K _(c)=Σ Heating power/Σ(block−coolant temperature)  (12)

[0457] Typical values for K_(c) are 28 watts/° C.±3 at 10° C. and 31watts/° C.±3 at 18° C. A low K_(c) may be due to a closed or obstructedramp valve, kinked coolant tubing, weak pump or a hard water/Prestone™mixture.

[0458] A sensor lag test measures the block sensor lag by firstcontrolling the block temperature to 35° C. and then applying 500 wattsof heater power for 2 seconds and measuring the time required for theblock to rise 1° C. Typical values are 13 to 16 units, where each unitis equal to 200 ms. A slow or long sensor lag can be due to a poorinterface between the sensor and the block, such as lack of thermalgrease, a poorly machined sensor cavity or a faulty sensor.

[0459] The remaining install tests are currently executed by the installprogram but have limited diagnostic purposes due to the fact that theyare calculated values or are a function of so many variables that theirresults do not determine the source of a problem accurately.

[0460] The install program calculates the slope of the ramp coolingconductance (S_(c)) between 18° C. and 10° C. It is a measure of thelinearity of the conductance curve. It is also used to approximate theramp cooling conductance at 0° C. Typical values are 0.40±0.2. Thespread in values attest to the fact that it is just an approximation.

S _(c)=(Kc _(—)18°−Kc _(—)10°)/(18° C.−10° C.)  (13)

[0461] The install program also calculates the cooling conductanceK_(c0). K_(c0) is an approximation of the cooling conductance at 0° C.The value is extrapolated from the actual conductance at 10° C.

[0462] Typical values are 23 watts/° C.±5. The formula used is:

K _(c0) =Kc _(—)10−(Sc*10° C.)  (14)

[0463] The install program also calculates coolant capacity (Cool Cp)which is an approximation of thermal capacity of the entire coolantstream (coolant, plumbing lines, heat exchanger, and valves). Thecooling capacity is equal to components that pump heat into the coolantminus the components that remove heat from the coolant. The mechanicsused to measure and calculate these components are complex and aredescribed in detail in the source code description section. In thismeasurement, the coolant is allowed to stabilize at 10° C. Maximumheater power is applied to the sample block for a period of 128 seconds.

Cool Cp=Heat Sources−Coolant sources  (15)

Cool Cp=Heater Power+Pump Power+Kamb*(ΣTamb−ΣTcool)  (16)

[0464] Block Cp*(Tblock_(t-0)−Tblock_(t-128))

[0465] Average Chiller Power between Tcool_(t-0) and Tcool_(t-128)

[0466] Characters enclosed in { } indicate the variable names used inthe source code.

[0467] Heater-Ping Test Pseudocode:

[0468] The heater ping test verifies that the heaters are properly wiredfor the current line voltage.

[0469] Get the sample block and coolant to a known and stable point.

[0470] Turn ON the ramp cooling valves

[0471] Wait for the block and coolant to go below 5° C.

[0472] Turn OFF ramp cooling valves

[0473] Measure the cooling effect of control cooling by measuring theblock temperature drop over a 10 second time interval. Wait 10 secondsfor stabilization before taking any measurements.

[0474] Wait 10 seconds

[0475] temp1=block temperature

[0476] Wait 10 seconds

[0477] temp2=block temperature

[0478] {tempa}=temp2−temp1

[0479] Examine the variable {linevolts} which contains the actualmeasured line voltage. Pulse the heater with 75 watts for a line voltagegreater than or equal to 190V or with 300 watts if it less than or equalto 140V.

[0480] if ({linevolts}>=190 Volts) then deliver 75 watts to heater

[0481] else if ({linevolts}<=140 volts) then deliver 300 watts to heater

[0482] else display an error message

[0483] Measure the temperature rise over a 10 second time period. Theresult is the average heat rate in 0.01°/second.

[0484] temp1=block temperature

[0485] Wait 10 seconds

[0486] temp2=block temperature

[0487] {tempb}=temp2−temp1

[0488] Subtract the average heat rate {tempb} from the control coolingeffect to calculate true heating rate

heat_rate={tempb}−{tempa}  (17)

[0489] Evaluate the heat_rate. For 220V-230V, the heat rate should beless than 0.30°/second. For 100V-120V the heat rate should be greaterthan 0.30°/second.

if (linevoltage=220V and heat_rate>0.30°/second) then

[0490] Error-> Heaters wired for 120V

[0491] Lock up keyboard

if (linevoltage=120V and heat_rate<0.30°/second) then

[0492] Error-> Heaters wired for 220V

[0493] Lock up keyboard

[0494] KCC_Test Pseudocode:

[0495] This test measures the control cooling conductance also known asK_(cc).

[0496] K_(cc) is measured at a block temperature of 60° C.

[0497] Drive block to 60° C.

[0498] Maintain block temperature at 60° C. for 300 seconds

[0499] Integrate the power being applied to the sample block heatersover a 30 second time period. Measure and integrate the power requiredto maintain the block temperature with control cooling bias.    {dt_sum} = 0 (delta temperature sum)     {main_pwr_sum} = 0 (mainheater power sum)     {aux_pwr_sum} = 0 (auxiliary heater power sum)    for (count = 1 to 30)       {       {dt_sum} = {dt_sum} + (blocktemperature − coolant temperature)       wait 1 sec       Accumulate thepower applied to the main and       auxiliary heaters. The actual coderesides in the       PID control task and is therefore summed every      200 ms.       {main_pwr_sum} = {main_pwr_sum} + {actual_(—)      power}       {aux_pwr_sum} = {aux_pwr_sum} + {aux1_actual} +{aux2_actual}       }

[0500] Compute the conductance by dividing the power sum by thetemperature sum. Note that the units are 10 mW/° C.

K _(cc)=({main_pwr_sum}+{aux_pwr_sum})/{dt_sum}  (18)

[0501] BLOCK_CP Test Pseudocode:

[0502] This test measures the sample block thermal capacity.

[0503] Drive the block to 35° C.

[0504] Control block temperature at 35° C. for 5 seconds and recordinitial temperature.

initial_temp=block temperature

[0505] Deliver maximum power to heaters for 20 seconds while summing thedifference in block to coolant temperature as well as heater power.

[0506] Deliver 500 watts     {dt_sum} = 0     for (count = 1 to 20seconds)       {       {dt_sum} = {dt_sum} + (block temperature −coolant temperature)       wait 1 second       } (19)  delta_temp =block temperature − initial_temp

[0507] Compute the joules in cooling power due to control cooling whichoccurs during ramp.

cool_joule=Control cooling conductance (K_(cc))*{dt_sum}  (20)

[0508] Compute the total joules applied to the block from the mainheater and control cooling. Divide by temp change over the interval tocompute thermal capacity.

Block CP=ramptime*(heater power−cool_joule)/delta_temp  (21)

[0509] where:

[0510] ramptime=20 seconds

[0511] heater power=500 Watts

[0512] COOL_PWR_(—)10:

[0513] This test measures the chiller power at 10° C.

[0514] Control the coolant temperature at 10° C. and stabilize for 120secs. count = 120 do while (count != 0)   {   if (coolant temperature =10 ± 0.50° C.) then     count = count − 1   else     count = 120   wait1 second   }

[0515] At this point, the coolant has been at 10° C. for 120 seconds andhas stabilized. Integrate, over 32 seconds, the power being applied tomaintain a coolant temperature of 10° C. {cool_init} = coolanttemperature {main_pwr_sum} = 0 {aux_pwr_sum} = 0 {delta_temp_sum} = 0for (count = 1 to 32)   {   Accumulate the power applied to the main and  auxiliary heaters. The actual code resides in the   control task.  {main_pwr_sum} = {main_pwr_sum} + actual_power  {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual +             aux2_actual   delta_temp_sum =delta_temp_sum + (ambient temp −             coolant temp)   wait 1second }

[0516] Compute the number of joules of energy added to the coolant massduring the integration interval. “(coolant temp−cool_init)” is thechange in coolant temp during the integration interval. 550 is the Cp ofthe coolant in joules, thus the product is in joules. It represents theextra heat added to the coolant which made it drift from setpoint duringthe integration interval. This error is subtracted below from the totalheat applied before calculating the cooling power.

cool_init=(coolant temp−cool_init)*550J  (22)

[0517] Add the main power sum to the aux heater sum to get joulesdissipated in 32 seconds. Divide by 32 to get the average joules/sec.

{main_pwr_sum}=({main_pwr_sum}+{aux_pwr_sum}−cool_init)/32  (23)

[0518] Compute the chiller power at 10° C. by summing all the chillerpower components.

Power_(10° C.)=main_power_sum+PUMP PWR+(K_AMB*delta_temp_sum)  (24)

[0519] where:

[0520] {main_pwr_sum}=summation of heater power over interval

[0521] PUMP PWR=12 Watts, pump that circulates coolant

[0522] delta_temp_sum=summation of amb−coolant over interval

[0523] K_AMB=20 Watts/K, thermal conductance from cooling to ambient.

[0524] KC_(—)10 Test Pseudocode:

[0525] This test measures the ramp cooling conductance at 10° C.

[0526] Control the coolant temperature at 10° C.±0.5 and allow it tostabielize for 10 seconds.

[0527] At this point, the coolant is at setpoint and is beingcontrolled. Integrate, over a 30 second time interval, the power beingapplied to the heaters to maintain the coolant at 10° C. Sum thedifference between the block and coolant temperatures.   {main_pwr_sum}= 0   {aux_pwr_sum} = 0   {dt_sum}    = 0   for (count = 1 to 30)     {    Accumulate the power applied to the main and     auxiliary heaters.The actual code resides in the     PID control task.     {main_pwr_sum}= {main_pwr_sum} + actual_power   {aux_pwr_sum} = {aux_pwr_sum} +aux1_actual +             aux2_actual     {dt_sum} = {dt_sum} + (blocktemperature − coolant temp)     wait 1 second   }

[0528] Compute the energy in joules delivered to the block over thesummation period. Units are in 0.1 watts.

{main_pwr_sum}={main_pwr_sum}+{aux_pwr_(—sum})  (25)

[0529] Divide the power sum by block−coolant temperature sum to get rampcooling conductance in 100 mW/K.

Kc _(—)10={main_pwr_sum}/{dt_sum}  (26)

[0530] COOL_PWR_(—)18 Test Pseudocode:

[0531] This test measures the chiller power at 18° C.

[0532] Get the sample block and coolant to a known and stable point.Control the coolant temperature at 18° C. and stabilize for 120 secs.count = 120 do while (count != 0)   {   if (coolant temperature = 18° C.± 0.5) then     count = count − 1   else     count = 120   wait 1 second}

[0533] At this point the coolant has been at 18° C. for 120 seconds andhas stabilized. Integrate, over 32 seconds, the power being applied tomaintain a coolant temperature of 18° C.    {cool_init} = coolanttemperature     {main_pwr_sum} = 0     {aux_pwr_sum} = 0    {delta_temp_sum} = 0     for (count = 1 to 32)       {      Accumulate the power applied to the main and       auxiliaryheaters. The actual code resides in the       control task.      {main_pwr_sum} = {main_pwr_sum} + actual_power     {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual + aux2_actual       delta_temp_sum =delta_temp_sum + (ambient temp − coolant temp)       wait 1 second     }

[0534] Compute the number of joules of energy added to the coolant massduring the integration interval. “(coolant temp−cool_init)” is thechange in coolant temp during the integration interval. 550 is the Cp ofthe coolant in joules, thus the product is in joules. It represents theextra heat added to the coolant which made it drift setpoint during theintegration interval. This error is subtracted below from the total heatapplied before calculating the cooling power.

cool_init=(coolant temp−cool_init)*550J  (27)

[0535] Add main power sum to aux heater sum to get joules dissipated in32 seconds. Divide by 32 to get the average joules/sec.

{main_pwr_sum}=({main_pwr_sum}+{aux_pwr_sum}−cool_init)/32  (28)

[0536] Compute the chiller power at 18° C. by summing all the chillerpower components.

Power_(18° C.)=main_power_sum+PUMP PWR+(K_AMB*delta_temp_sum)  (29)

[0537] where:

[0538] {main_pwr_sum}=summation of heater power over interval

[0539] PUMP PWR=12 Watts, pump that circulates coolant

[0540] delta_temp_sum=summation of amb−coolant over interval

[0541] K_AMB=20 Watts/K, Thermal conductance from cooling to ambient.

[0542] KC_(—)18 Test Pseudocode:

[0543] This test measures the ramp cooling conductance at 18° C.

[0544] Control the coolant temperature at 18° C.±0.5 and allow it tostabilize for 10 seconds.

[0545] At this point, the coolant is at setpoint and being controlled.Integrate, over a 30 second time interval, the power being applied tothe heaters to maintain the coolant at 18° C. Sum the difference betweenthe block and coolant temperature.     {main_pwr_sum} = 0    {aux_pwr_sum} = 0     {dt_sum} = 0     for (count = 1 to 30)       {      Accumulate the power applied to the main and       auxiliaryheaters. The actual code resides in the       control task.      {main_pwr_sum} = {main_pwr_sum} + actual_power     {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual + aux2_actual       {dt_sum} = {dt_sum} +(block temperature − coolant temp)       wait 1 second     }

[0546] Compute the energy in joules delivered to the block over thesummation period. Units are in 0.1 watts.

{main_pwr_sum}={main_pwr_sum}+{aux_pwr_sum}  (30)

[0547] Divide power sum by block−coolant temperature sum to get rampcooling conductance in 100 mW/K.

Kc _(—)18={main_pwr_sum}/{dt_sum}  (31)

[0548] SENLAG Test Pseudocode:

[0549] This test measures the sample block sensor lag.

[0550] Drive the block to 35° C. Hold within ±0.2° C. for 20 secondsthen record temperature of block.

{tempa}=block temperature

[0551] Deliver 500 watts of power to sample block.

[0552] Apply 500 watts of power for the next 2 seconds and count theamount of iterations through the loop for the block temperature toincrease 1° C. Each loop iteration executes every 200 ms, thereforeactual sensor lag is equal to count *200 ms. secs = 0 count = 0 do while(TRUE)   {   if (secs >= 2 seconds) then     shut heaters off   if(block temperature − tempa > 1.0° C.) then     exit while loop   count =count + 1   } end do while sensor lag = count

[0553] Coolant CP Test Pseudocode:

[0554] This test computes the coolant capacity of the entire system.

[0555] Stabilize the coolant temperature at 10° C.±0.5.

[0556] Send message to the PID control task to ramp the coolanttemperature from its current value (about 10° C.) to 18° C.

[0557] Wait for the coolant to cross 12° C. so that the coolant CP rampalways starts at the same temperature and has clearly started ramping.Note the initial ambient and block temperatures. do while (coolanttemperature < 12° C.)   {   wait 1 second   } {blk_delta} = blocktemperature {h2o_delta} = coolant temperature

[0558] For the next two minutes, while the coolant temperature isramping to 18° C., sum the coolant temperature and the differencebetween the ambient and coolant temperatures. {temp_sum} = 0 {cool_sum}= 0 for (count 1 to 128 seconds) { {cool_sum} = cool_temp_sum + coolanttemperature. {temp_sum} = ambient − coolant temperature wait 1 secondcount = count + 1 }

[0559] (32)

[0560] (33)

[0561] Calculate the change in temperatures over the two minute period.

{blk_delta}=block temperature−{blk delta}  (34)

{h2o_delta}=coolant temperature−{h2o_delta}  (35)

[0562] Compute KChill, i.e., the rate of change of chiller power withcoolant temperature over the coolant range of 10° C. to 20° C. Note thatunits are in watts/10° C.

Kchill=(Chiller Pwr @18° C.−Chiller Pwr @10° C.)  (36)

[0563] Compute Sc which is the slope of the ramp cooling conductivityversus the temperature range of 18° C. to 10° C. The units are inwatts/10° C./10° C.

Sc=(Kc _(—)18−Kc _(—)10)/8  (37)

[0564] Compute Kc_(—)0, the ramp cooling conductance extrapolated to 0°C.

Kc _(—)0=Kc _(—)10−(Sc*10)  (38)

[0565] Compute Cp_Cool, the Cp of the coolant by:

Cp_Cool=(HEATPOWER*128+PUMP_PWR*128  (39)

[0566] Power @0° C.*128

[0567] Block_Cp*blk_delta

[0568] +K_AMB*temp_sum

[0569] −Kchill*cool_temp_sum)/h2o_delta

[0570] where:

[0571] HEATPOWER=500 W, the heater power applied to warm the block, thusheating the coolant. It is multiplied by 128, as the heating intervalwas 128 secs.

[0572] PUMP_PWR=12 W, the power of the pump that circulates the coolantmultiplied by 128 seconds.

[0573] Pwr_(—)0° C.=The chiller power at 0° C. multiplied by 128seconds.

[0574] Block_Cp=Thermal capacity of sample block.

[0575] blk_delta=Change in block temp over the heating interval.

[0576] K_AMB=20 Watts/K, thermal conductance from cooling to ambient.

[0577] temp_sum=The sum once per second of ambient−coolant temperatureover the interval.

[0578] h2o_delta=Change in coolant temperature over interval of heating(approximately 6° C.).

[0579] Kchill=Slope of chiller power versus coolant temp.

[0580] cool_sum=The sum of coolant temp, once per second, over theheating interval.

[0581] Real Time Operating System—Cretin

[0582] CRETIN is a stand alone, multitasking kernel that provides systemservices to other software modules called tasks. Tasks are written inthe “C” language with some time critical areas written in Intel 8085assembler. Each task has a priority level and provides an independentfunction. CRETIN resides in low memory and runs after the startupdiagnostics have successfully been executed.

[0583] CRETIN handles the task scheduling and allows only one task torun at a time. CRETIN receives all hardware interrupts thus enablingwaiting tasks to run when the proper interrupt is received. CRETINprovides a real time clock to allow tasks to wait for timed events orpause for known intervals. CRETIN also provides intertask communicationthrough a system of message nodes.

[0584] The firmware is composed of nine tasks which are brieflydescribed in priority order below. Subsequent sections will describeeach task in greater detail.

[0585] 1. The control task (PID) is responsible for controlling thesample block temperature.

[0586] 2. The keyboard task is responsible for processing keyboard inputfrom the keypad.

[0587] 3. The timer task waits for a half second hardware interruptsthen sends a wake up message to both the sequence and the display task.

[0588] 4. The sequence task executes the user programs.

[0589] 5. The pause task handles programmed and keypad pauses when aprogram is running.

[0590] 6. The display task updates the display in real time.

[0591] 7. The printer task handles the RS-232 port communication andprinting.

[0592] 8. The LED task is responsible for driving the heating LED. It isalso used to control the coolant temperature while executing Install.

[0593] 9. The link task starts files that are linked together in amethod by simulating a keystroke.

[0594] Block Temperature Control Program (PID Task)

[0595] The Proportional Integral Differential (PID) task is responsiblefor controlling the absolute sample block temperature to 0.1° C., aswell as controlling the sample block temperature non-uniformity (TNU,defined as the temperature of the hottest well minus the temperature ofthe coldest well) to less than ±0.5° C. by applying more heating powerto the perimeter of the block to compensate for losses through the guardband edges. The PID task is also responsible for controlling thetemperature of the heated cover to a less accurate degree. This taskruns 5 times per second and has the highest priority.

[0596] The amount of heating or cooling power delivered to the sampleblock is derived from the difference or “error” between the userspecified sample temperature stored in memory, called the setpoint, andthe current calculated sample temperature.

[0597] This scheme follows the standard loop control practice. Inaddition to a power contribution to the film heaters directlyproportional to the current error, i.e., the proportional component,(setpoint temperature minus sample block temperature), the calculatedpower also incorporates an integral term that serves to close out anystatic error (Setpoint temperature−Block temperature less than 0.5° C.).This component is called the integral component. To avoid integral termaccumulation or “wind-up”, contributions to the integral are restrictedto a small band around the setpoint temperature. The proportional andintegral component gains have been carefully selected and tested, as thetime constants associated with the block sensor and sample tube severelyrestrict the system's phase margin, thus creating a potential for loopinstabilities. The proportional term gain is P in Equation (46) belowand the integral term gain is Ki in Equation (48) below.

[0598] The PID task uses a “controlled overshoot algorithm” where theblock temperature often overshoots its final steady state value in orderfor the sample temperature to arrive at its desired temperature asrapidly as possible. The use of the overshoot algorithm causes the blocktemperature to overshoot in a controlled manner but does not cause thesample temperature to overshoot. This saves power and is believed to benew in PCR instrumentation.

[0599] The total power delivered to all heater of the sample block toachieve a desired ramp rate is given by:

Power=(CP/ramp_rate)+bias  (40)

[0600] where:

[0601] CP=Thermal mass of block

[0602] bias=bias or control cooling power

[0603] ramp_rate=T_(final)−T_(initial)/desired ramp rate

[0604] This power is clamped to a maximum of 500 watts of heating powerfor safety.

[0605] With every iteration of the task (every 200 ms) the systemapplies heating or ramp cooling power (if necessary) based on thefollowing algorithms.

[0606] The control system is driven by the calculated sampletemperature. The sample temperature is defined as the averagetemperature of the liquid in a thin walled plastic sample tube placed inone of the wells of the sample block (hereafter the “block”). The timeconstant of the system (sample tube and it contents) is a function ofthe tube type and volume. At the start of a run, the user enters thetube type and the amount of reaction volume. The system computes aresultant time constant (τ or tau). For the MicroAmp™ tube and 100microliters of action volume, tau is approximately 9 seconds.

T _(blk-new) =T _(blk)+Power*(200 ms/CP)  (41)

T _(samp-new) =T _(samp)+(T _(blk-new) −T _(samp))*200 ms/tau  (42)

[0607] where:

[0608] Tblk-new=Current block temperature

[0609] Tblk=Block temperature 200 ms ago

[0610] Power=Power applied to block

[0611] CP=Thermal mass of block

[0612] T_(samp-new)=Current sample temperature

[0613] T_(samp)=Sample temperature 200 ms ago

[0614] tau=Thermal Time Constant of sample tube, adjusted for sensor lag(approximately 1.5)

[0615] The error signal or temperature is simply:

error=Setpoint−T_(samp-new)  (43)

[0616] As in any closed loop system, a corrective action (heating orcooling power) is applied to close out part of the current error. InEquation (45) below, F is the fraction of the error signal to be closedout in one sample period (200 mS).

T _(samp-new) =T _(samp) +F*(SP−T _(samp))  (44)

[0617] where SP=the user setpoint temperature

[0618] Due to the large lag in the system (long tube time constant), thefraction F is set low.

[0619] Combining formulas (42) and (44) yields:

T _(samp-new) =T _(samp)+(T _(blk-new) −T _(samp))*0.2/tau=T _(samp)+F*(SP−T _(samp))  (45)

[0620] Combining formulas (41) and (45) and adding a term P (theproportional term gain) to limit block temperature oscillations andimprove system stability yields:

Pwr=CP*P/T*((SP−T _(samp))*F*tau/T+T _(samp) −T _(blk))  (46)

[0621] where

[0622] P=the proportional term gain and

[0623] T=the sample period of 0.2 seconds (200 msec). and

[0624] P/T=1 in the preferred embodiment

[0625] Equation (46) is a theoretical equation which gives the power(Pwr) needed to move the block temperature to some desired value withoutaccounting for losses to the ambient through the guardbands, etc.

[0626] Once the power needed to drive the block is determined viaEquation (46), this power is divided up into the power to be deliveredto each of the three heater zones by the areas of these zones. Then thelosses to the manifolds are determined and a power term having amagnitude sufficient to compensate for these losses is added to theamount of power to be delivered to the manifold heater zone. Likewise,another power term sufficient to compensate for power lost to the blocksupport pins, the block temperature sensor and the ambient is added tothe power to be delivered to the edge heater zones. These additionalterms and the division of power by the area of the zones convertEquation (46) to Equations (3), (4) and (5) given above.

[0627] Equation (46) is the formula used by the preferred embodiment ofthe control system to determine the required heating or cooling power tothe sample block.

[0628] When the computed sample temperature is within the “integralband”, i.e., ±0.5° C. around the target temperature (SP), the gain ofthe proportional term is too small to close out the remaining error.Therefore an integral term is added to the proportional term to closeout small errors. The integral term is disabled outside the integralband to prevent a large error signal from accumulating. The algorithminside the “integral band” is as follows:

Int_sum(new)=Int_sum(old)+(SP−T _(samp))  (47)

pwr_adj=ki*Int_sum(new)  (48)

[0629] where,

[0630] Int_sum=the sum of the sample period of the difference betweenthe SP and T_(samp) temperature, and

[0631] Ki=the integral gain (512) in the preferred embodiment).

[0632] Once a heating power has been calculated, the control softwaredistributes the power to the three film heater zones 254, 262 and 256 inFIG. 13 based on area in the preferred embodiment. The edge heatersreceive additional power based upon the difference between the blocktemperature and ambient temperature. Similarly, the manifold heatersreceive additional power based upon the difference between the blocktemperature and the coolant temperature.

[0633] Characters enclosed in { } in the pseudocode given below for thePID task correspond to the variable names used in the source code ofMicrofiche Appendix C.

[0634] PID Pseudocode

[0635] Upon System Power up or Reset

[0636] Initialize PID variables

[0637] Read the line frequency

[0638] Initialize PIT and system clock

[0639] Turn off ramp cooling

[0640] Turn off all heaters

[0641] Calculate heater resistances

[0642] Do Forever−executes every 200 ms

[0643] If (block temperature>105) then

[0644] Turn off heaters

[0645] Turn on ramp valves

[0646] Display error message

[0647] Read the line voltage {linevolts}

[0648] Read the coolant sensor and convert to temperature {h2otemp}

[0649] Read the ambient sensor and convert to temperature {ambtemp}

[0650] Read the heated cover sensor and convert to temperature {cvrtemp}

[0651] Read the sample block sensor and convert to temperature{blktemp}.

[0652] This portion of the code also reads the temperature stablevoltage reference and compares the voltage to a reference voltage thatwas determined during calibration of the instrument. If there is anydiscrepancy, the electronics have drifted and the voltage readings fromthe temperature sensors are adjusted accordingly to obtain accuratetemperature readings.

[0653] Compute the sample temperature {tubetenths} or the temperaturethat gets displayed by using a low-pass digital filter.

tubetenths=TT _(n-1)+(TB _(n) −TT _(n-1))*T/tau  (49)

[0654] where

[0655] TT_(n-1)=last sample temp {tubetenths}

[0656] TB_(n)=current block sensor temp {blktenths}

[0657] T=sample interval in seconds=200 ms

[0658] tau=tau tube {cf_tau}−tau sensor {cf_lag}

[0659] Equation (49) represents the first terms of a Taylor seriesexpansion of the exponential.that defines the calculated sampletemperature given as Equation (6) above.

[0660] Compute the temperature of the foam backing underneath the sampleblock, {phantenths} known as the phantom mass. The temperature of thephantom mass is used to adjust the power delivered to the block toaccount for heat flow in and out of the phantom mass. The temperature iscomputed by using a low pass digital filter implemented in software.

phantenths=TT _(n-1)+(TB _(n) −TT _(n-1))*T/tau  (50)

[0661] where

[0662] TT_(n-1)=Last phantom mass temp {phantenths}

[0663] TB_(n)=Current block sensor temp {blktenths}

[0664] T=Sample interval in seconds=200 ms

[0665] tau_(foam)=tau of foam block=30 secs.

[0666] Compute the sample temperature error (the difference between thesample temperature and the setpoint temperature) {abs_tube_err}.

[0667] Determine ramp direction {fast_ramp}=UP_RAMP or DN_RAMP

[0668] If (sample temperature is within ERR of setpoint (SP)) then PIDnot in fast transition mode. {fast_ramp}=OFF

[0669] where ERR=the temperature width of the “integral band”, i.e., theerror band surrounding the target or setpoint temperature.

[0670] Calculate current control cooling power {cool_ctrl} to determinehow much heat is being lost to the bias cooling channels.

[0671] Calculate current ramp cooling power {cool_ramp}

[0672] Calculate {cool_brkpt}. {cool_brkpt} is a cooling power that isused to determine when to make a transition from ramp to control coolingon downward ramps. It is a function of block and coolant temperature.

[0673] The control cooling power {cool_ctrl} and the ramp cooling power{cool_ramp} are all factors which the CPU must know to control downwardtemperature ramps, i.e., to calculate how long to keep the ramp coolingsolenoid operated valves open. The control cooling power is equal to aconstant plus the temperature of the coolant times the thermalconductance from the block to the bias cooling channels. Likewise, theramp cooling power is equal to the difference between the blocktemperature and the coolant temperature times the thermal conductancefrom the block to the ramp cooling channels. The cooling breakpoint isequal to a constant (given in Microfiche Appendix C) times thedifference in temperature between the block and the coolant.

[0674] Calculate a heating or cooling power {int_pwr} needed to move theblock temperature from its current temperature to the desired setpoint(SP) temperature.

{int_pwr}=KP*CP*[(SP−T _(samp))*{cf _(—) kd}+Ts −T _(BLK)]  (51)

[0675] where:

[0676] KP=Proportional gain=P/T in Equation (46)=approximately one inthe preferred embodiment

[0677] CP=Thermal mass of block

[0678] SP=Temperature setpoint

[0679] T_(SAMP)=Sample temperature

[0680] T_(BLK)=Block temperature

[0681] cf_kd=Tau*K_(d)/Delta_t where tau is the same tau as used inEquation (49) and K_(d) is a constant given in Microfiche Appendix C andDelta_t is the 200 msec sample period.

[0682] If (sample temperature is within {cf_iband} of setpoint) then

[0683] integrate sample error {i_sum} else

clear {i_sum=0}.  (52)

[0684] Calculate the integral term power.

integral term={i_sum}*constant{cf_term}.  (53)

[0685] Add the integral term to the power.

{int_pwr}={int_pwr}+integral term  (54)

[0686] Adjust power to compensate for heating load due to the effects ofthe phantom mass (foam backing) by first finding the phantom-mass powerthen adding it to power {int_pwr}.

[0687] Calculate phantom mass power {phant_pwr} by:

phant_pwr=C*(blktenths−phantenths)/10  (55)

[0688] where:

[0689] C=thermal mass of foam backing (1.0 W/K)

[0690] Adjust heater power

{int_pwr}={int_pwr}+{phant_pwr}

[0691] Compute power needed in manifold heaters {aux1_power} which willcompensate for loss from the sample block into the manifold edges thathave coolant flowing through it. Note that if the system is in adownward ramp, {aux1_power}=0. The manifold zone power required isdescribed below:

{aux1_power}=K1*(T _(BLK) −T _(AMP))+K2*(T _(BLK) −T_(COOL))+K5*(dT/dt)  (57)

[0692] where:

[0693] K1=Coefficient {cf_(—)1coeff}

[0694] K2=Coefficient {cf_(—)2coeff}

[0695] K5=Coefficient {cf_(—)5coeff}

[0696] dT/dt=Ramp rate

[0697] T_(BLK)=Block temperature

[0698] T_(AMB)=Ambient temperature

[0699] T_(COOL)=Coolant temperature

[0700] Compute power needed in edge heaters {aux2_power} which willcompensate for losses from the edges of the sample block to ambient.Note that if we are in a downward ramp {aux2_power}=0. The edge zonepower required is described below:

{aux2_power}=K3*(T _(BLK) −T _(AMB))+K4*(T _(BLK) −T_(COOL))+K6*(dT/dt)  (58)

[0701] where:

[0702] K3=Coefficient {cf_(—)3coeff}

[0703] K4=Coefficient {cf_(—)4coeff}

[0704] K6=Coefficient {cf_(—)6coeff}dT/dt=Ramp rate

[0705] T_(BLK)=Block temperature

[0706] T_(AMP)=Ambient temperature

[0707] T_(COOL)=Coolant temperature

[0708] Delete contribution of manifold {aux1_power} and edge heaterpower {aux2_power} to obtain total power that must be supplied by mainheaters and coolers.

{int_pwr}={int_pwr}−{aux1_power}−{aux2_power}  (59)

[0709] Decide if the ramp cooling should be applied. Note that{cool_brkpt} is used as a breakpoint from ramp cooling to controlcooling.

[0710] If (int_pwr <-cool_brkpt and performing downward ramp) to decidewhether block temperature is so much higher than the setpointtemperature that ramp cooling is needed then

[0711] Turn ON ramp valves else

[0712] Turn OFF ramp valves and depend upon bias cooling

[0713] At this point, {int_pwr} contains the total heater power and{aux1_power} and {aux2_power} contain the loss from the block out to theedges. The power supplied to the auxiliary heaters is composed of twocomponents: aux_power and int_power. The power is distributed {int pwr}to the main and auxiliary heaters based on area.

[0714] total_pwr=int_pwr

[0715] int_pwr=total_pwr*66%

[0716] aux1_power=total_pwr*20%+aux1_power

[0717] aux2_power=total_pwr*14%+aux2_power

[0718] Compute the number of half cycles for the triac to conduct foreach end zone and each iteration of the control loop to send theappropriate amount of power to the heaters. This loop executes onceevery ⅕ second, therefore there are 120/5=24 half cycles at 60 Hz or100/5=20 at 50 Hz. The number of half cycles is a function of requestedpower {int_pwr}, the current line voltage {linevolts} and the heaterresistance. Since the exact power needed may not be delivered each loop,a remainder is calculated {delta_power} to keep track of what to includefrom the last loop.

int_pwr=int_pwr+delta_power  (60)

[0719] Calculate the number of ½ cycles to keep the triac on. Index isequal to the number of cycles to keep the triac on.

index=power*main heater ohms*[20 or 24]/linevolts squared where Equation(61) is performed once for each heater zone and where “power”=int_pwrfor the main heater zone, aux1_pwr for the manifold heater zone andaux2_pwr for the edge heater zone.  (61)

[0720] Calculate the amount of actual power delivered.

actual_power=linevolts squared*index/main heater resistance  (62)

[0721] Calculate the remainder to be added next time.

delta_power=int_pwr−actual_power  (63)

[0722] Calculate the number of ½ cycles for the edge and manifoldheaters using the same technique described for the main heaters bysubstituting {aux1_pwr} and {aux2_pwr} into Equation (60).

[0723] Load the calculated counts into the counters that control themain, manifold and edge triacs.

[0724] Look at heated cover sensor. If heated cover is less than 100°C., then load heated cover counter to supply 50 watts of power.

[0725] Look at sample temperature. If it is greater than 50° C., turn onHOT LED to warn user not to touch block.

[0726] END OF FOREVER LOOP

[0727] Keyboard Task

[0728] The purpose of the keyboard task is to wait for the user to pressa key on the keypad, compare the key to a list of valid keystrokes forthe current state, execute the command function associated with thevalid key and change to a new state. Invalid keystrokes are indicatedwith a beep and then ignored. This task is the heart of the state drivenuser interface. It is “state driven” because the action taken depends onthe current state of the user interface.

[0729] Keyboard Task Pseudocode:

[0730] Initialize keyboard task variables.

[0731] Turn off the cursor.

[0732] If (install flag not set) then Run the install program.s

[0733] Send a message to pid task to turn on the heated cover.

[0734] If (the power failed while the user was running a program) thenCompute and display the number of minutes the power was off for.

[0735] Write a power failure status record to the history file.

[0736] Send a message to the sequence task to start a 4° C. soak.

[0737] Give the user the option of reviewing the history file.

[0738] If (the user request to review the history file) then

[0739] Go to the history file display.

[0740] Display the top level screen.

[0741] Do Forever

[0742] Send a message to the system that this task is waiting for ahardware interrupt from the keypad.

[0743] Go to sleep until this interrupt is received. When awakened, readand decode the key from the keypad. Get a list of the valid keys for thecurrent state. Compare the key to the list of valid keys. If (the key isvalid for this state) then Get the “action” and next state informationfor this key.

[0744] Execute the “action” (a command function) for this state.

[0745] Go to the next state.

[0746] Else

[0747] Beep the beeper for an invalid key.

[0748] End of Forever Loop

[0749] Timer Task Overview

[0750] The purpose of the timer task is to wake up the sequence and thereal time display task every half a second. The timer task asks thesystem (CRETIN) to wake it up whenever the half second hardwareinterrupt that is generated by the clock/calendar device is received.The timer task then in turn sends 2 wake up messages to the sequencetask and the real time display task respectively. This intermediate taskis necessary since CRETIN will only service one task per interrupt andthus only the higher priority task (the sequence task) would execute.

[0751] Timer Task Pseudocode:

[0752] Do Forever

[0753] Send a message to the system that this task is waiting for ahardware interrupt from the clock/calendar device.

[0754] Go to sleep until this interrupt is received.

[0755] When awakened, send a message to the sequence and to the realtime display task.

[0756] End Forever Loop

[0757] Sequence Task Overview

[0758] The purpose of the sequence task is to execute the contents of auser defined program. It sequentially steps through each setpoint in acycle, consisting of a ramp and a hold segment, and sends out setpointtemperature messages to the pid task which in turn controls thetemperature of the sample block. At the end of each segment, it sends amessage to the real time display task to switch the display and amessage to the printer task to print the segment's runtime information.The user can pause a running program by pressing the PAUSE key on thekeypad then resume the program by pressing the START key. The user canprematurely abort a program by pressing the STOP key. This task executesevery half a second when it is awakened by the timer task.

[0759] Sequence Task Pseudocode:

[0760] Do Forever

[0761] Initialize sequence task variables. Wait for a message from thekeyboard task that the user has pressed the START key or selected STARTfrom the menu or a message from link task that the next program in amethod is ready to run. Go to sleep until this message is received. Whenawakened, update the ADC calibration readings to account for any driftin the analog circuitry.

[0762] If (not starting the 4° C. power failure soak sequence) then

[0763] Send a message to the printer task to print the PE title line,system time and date, program configuration parameters, the program typeand its number.

[0764] If (starting a HOLD program) then

[0765] Get the temperature to hold at {hold_tp}.

[0766] Get the number of seconds to hold for {hold_time}.

[0767] If (ramping down more than 3° C. and {hold_tp}>45° C.) then

[0768] Post an intermediate setpoint.

[0769] Else

[0770] Post the final setpoint {hold_tp}.

[0771] While (counting down the hold time {hold_time})

[0772] Wait for half second wake up message from timer task.

[0773] Check block sensor for open or short.

[0774] If (keyboard task detected a PAUSE key) then

[0775] Post a setpoint of current sample temp.

[0776] Send a message to wake up the pause task.

[0777] Go to sleep until awakened by the pause task.

[0778] Post pre-pause setpoint.

[0779] If (an intermediate setpoint was posted) then

[0780] Post the final setpoint.

[0781] If (the setpoint temp is below ambient temp and will be there formore than 4 min.) then

[0782] Set a flag to tell pid task to turn off the heated cover.

[0783] Increment the half second hold time counter {store_time}.

[0784] Post the final setpoint again in case the hold time expiredbefore the intermediate setpoint was reached—this insures the correctsetpoint will be written the history file.

[0785] Write a data record to the history file.

[0786] Send a message to the printer task to print the HOLD info.

[0787] End of HOLD program

[0788] Else if (starting a CYCLE program) then

[0789] Add up the total number of seconds in a cycle {secs_in_run},taking into account the instrument ramp time and the user programmedramp and hold times.

[0790] Get the total number of seconds in the program by multiplying thenumber of seconds in a cycle by the number of cycles in a program{num_cyc}.

[0791] Total {secs_in_run}={secs_in_run} per cycle*{num_cyc}.

[0792] While (counting down the number of cycles {num_cyc})

[0793] While (counting down the number of setpoints {num_seg})

[0794] Get the ramp time {ramp_time}.

[0795] Get the final setpoint temp {t_final}.

[0796] Get the hold time {local_time}.

[0797] Send a message to the real time display task to display the rampsegment information.

[0798] If (the user programmed a ramp time) then

[0799] Compute the error {ramp_err} between the programmed ramp time andthe actual ramp time as follows. This equation is based on empiricaldata.

{ramp_err}=prog ramp_rate*15+0.5 (up ramp)

{ramp_err}=prog ramp_rate*6+1.0 (down ramp)

[0800] where:

prog ramp_rate=(abs(T _(f) −T _(c))−1)/{ramp_time}

[0801] T_(f)=setpoint temp {t_final}

[0802] T_(c)=current block temp {blktemp}

[0803] abs=absolute value of the expression

[0804] Note: the ‘−1’ is there because the clock starts within 1° C. ofsetpoint.

new ramp_time=old {ramp_time}−{ramp_err}

[0805] If (new ramp_time>old {ramp_time}) then

[0806] new ramp_time=old {ramp_time}.

[0807] Else

[0808] new ramp_time=0.

[0809] While (sample temp is not within a user configured temp{cf_clk_dev} of setpoint)

[0810] Wait for half second wake up message from timer task.

[0811] Post a new ramp setpoint every second.

[0812] Else if (ramping down more than 3° C. and {t_final}>45° C.) then

[0813] Post an intermediate setpoint.

[0814] While (sample temp is not within a user configured temp{cf_clk_dev} of setpoint)

[0815] Wait for half second wake up message from timer task.

[0816] Increment the half second ramp time counter.

[0817] Check block sensor for open or short.

[0818] If (keyboard task detected a PAUSE key) then

[0819] Post a setpoint of current sample temp.

[0820] Send a message to wake up the pause task.

[0821] Go to sleep until awakened by the pause task.

[0822] Post pre-pause setpoint.

[0823] Post the final setpoint.

[0824] While (sample temp is not within a user configured temp

[0825] {cf_clk_dev} of setpoint)

[0826] Wait for half second wake up message from timer task.

[0827] Increment the half second ramp time counter.

[0828] Check block sensor for open or short.

[0829] If (keyboard task detected a PAUSE key) then

[0830] Post a setpoint of current sample temp.

[0831] Send a message to wake up the pause task.

[0832] Go to sleep until awakened by the pause task.

[0833] Post pre-pause setpoint.

[0834] Send a message to the printer task to print the ramp information.

[0835] Beep beeper to signal end of ramp segment.

[0836] Send a message to the real time display task to display the holdsegment information.

[0837] While (counting down the hold time)

[0838] Wait for half second wake up message from timer task.

[0839] Increment the half second hold time counter.

[0840] Check block sensor for open or short.

[0841] If (keyboard task detected a PAUSE key) then

[0842] Post a setpoint of current sample temp.

[0843] Send a message to wake up the pause task.

[0844] Go to sleep until awakened by the pause task.

[0845] Post pre-pause setpoint.

[0846] Write a data record to the history file.

[0847] Send a message to the printer task to print the hold information.

[0848] If (the final setpoint temp has drifted more than the

[0849] user configurable amount {cf_temp_dev}) then

[0850] Write an error record to the history file.

[0851] Check for a programmed pause and execute if necessary.

[0852] Go to next segment.

[0853] Send a message to the printer task to print an end of cyclemessage.

[0854] Go to next cycle.

[0855] End of CYCLE program.

[0856] Else if (starting an AUTO-CYCLE program) then

[0857] Add up the total number of seconds in each program {secs_in_run}taking into account the instrument ramp time and the user programmedhold times and temperatures which can be automatically incremented ordecremented by a programmed amount each cycle.

[0858] While (counting down the number of cycles {num_cyc}) While(counting down the number of setpoints {num_seg})

[0859] Get the final setpoint temp {t_final}.

[0860] Get the hold time {time_hold}.

[0861] Check if the user programmed an auto increment or decrement ofthe setpoint temp and/or the hold time and adjust them accordingly.

[0862] If (the auto increment or decrement of the temp causes thesetpoint to go below 0° C. or above 99.9° C.) then

[0863] An error record is written to the history file.

[0864] The setpoint is capped at either 0° C. or 99.9° C.

[0865] If (the auto decrement of the hold time causes the hold time togo below 0 seconds) then

[0866] An error record is written to the history file.

[0867] The hold time is capped at 0° C.

[0868] Send a message to real time display task to display the rampsegment information.

[0869] If (ramping down more than 3° C. and {t_final}>45° C.) then

[0870] Post an intermediate setpoint.

[0871] While (sample temp is not within a user configured temp{cf_clk_dev} of setpoint)

[0872] Wait for half second wake up message from timer task.

[0873] Increment the half second ramp time counter.

[0874] Check block sensor for open or short.

[0875] If (keyboard task detected a PAUSE key) then

[0876] Post a setpoint of current sample temp. Send a message to wake upthe pause task.

[0877] Go to sleep until awakened by the pause task.

[0878] Post pre-pause setpoint.

[0879] Post the final setpoint.

[0880] While (sample temp is not within a user configured temp

[0881] {cf_clk_dev} of setpoint)

[0882] Wait for half second wake up message from timer task.

[0883] Increment the half second ramp time counter.

[0884] Check block sensor for open or short.

[0885] If (keyboard task detected a PAUSE key) then

[0886] Post a setpoint of current sample temp.

[0887] Send a message to wake up the pause task.

[0888] Go to sleep until awakened by the pause task.

[0889] Post pre-pause setpoint.

[0890] Send a message to the printer task to print the ramp segmentinformation.

[0891] Beep beeper to signal end of ramp portion of segment.

[0892] Send a message to the real time display task to display the holdsegment information.

[0893] While (counting down the hold time)

[0894] Wait for half second wake up message from timer task.

[0895] Increment the half second hold time counter.

[0896] Check block sensor for open or short.

[0897] If (keyboard task detected a PAUSE key) then

[0898] Post a setpoint of current sample temp.

[0899] Send a message to wake up the pause task.

[0900] Go to sleep until awakened by the pause task.

[0901] Post pre-pause setpoint.

[0902] Write a data record to the history file.

[0903] Send a message to the printer task to print the hold information.

[0904] If (the final setpoint temp has drifted more than the userconfigurable amount {cf temp_dev}) then

[0905] Write an error record to the history file. Go to next segment.

[0906] Send a message to the printer task to print an end of cyclemessage.

[0907] Go to next cycle.

[0908] End of AUTO-CYCLE program.

[0909] Else if (starting a POWER FAILURE sequence) then

[0910] Post a setpoint of 4° C.

[0911] Set a flag {subamb_hold} so that the pid task will shut off theheated cover.

[0912] DO FOREVER

[0913] Wait for a half second wake up message from the timer task.

[0914] Increment the half second hold time counter.

[0915] END FOREVER LOOP

[0916] End of power failure sequence

[0917] Write a run end status record to the history file.

[0918] If (running a method)

[0919] Set a flag {weird_flag} so the link task will know to send amessage to the sequence task to start the next program running.

[0920] Else

[0921] Return user interface to idle state display.

[0922] End of Forever Loop

[0923] Pause Task Overview

[0924] The purpose of the pause task is to handle either a pause thatthe user programs in a CYCLE program or a pause when the user pressesthe PAUSE key on the keypad.

[0925] When the sequence task encounters a programmed pause whileexecuting a CYCLE program, it goes to sleep and awakens the pause task.The pause task in turn sends a message to the real time display task tocontinually display and decrement the time the user asked to pause for.When the pause timer times out, the pause task sends a message to awakenthe sequence task and then goes to sleep. The user can prematurelyresume the program by pressing the START key on the keypad or canprematurely abort the program by pressing the STOP key.

[0926] When the keyboard task detects a PAUSE key while a program isrunning, it sets a flag {pause_flag} then waits for the sequence task toacknowledge it. When the sequence task sees this flag set, it sends anacknowledgment message back to the keyboard task then puts itself tosleep. When the keyboard task receives this message, it awakens thepause task. The pause task sends a message to the real time display taskto continually display and increment the amount of time the program ispaused for. The timer will time out when it reaches the pause time limitset by the user in the configuration section. The user can resume theprogram by pressing the START key on the keypad or abort the program bypressing the STOP key.

[0927] Pause Task Pseudocode:

[0928] Do Forever

[0929] Wait for a message from the keyboard task indicating a keypadpause, or a message form the sequence task indicating a user programmedpause.

[0930] Go to sleep until a message is received.

[0931] When awakened, check a flag for the type of pause initiated.

[0932] If (it is a programmed pause) then

[0933] Send a message to the real time display task to display the pausetimer counting up.

[0934] Else

[0935] Send a message to the real time display task to display the pausetimer counting down.

[0936] While (counting down the time out counter)

[0937] Send a message to the system to suspend this task for half asecond.

[0938] Send a message to the printer task to print the pauseinformation.

[0939] If (it is a programmed pause) then

[0940] Write a status record to the history file.

[0941] The pause has timed out so send a message to the wake up thesequence task.

[0942] Send a message to the real time display task to halt the pausedisplay.

[0943] Send a message to the real time display task to resume therunning program display.

[0944] Else (it is a keypad pause)

[0945] The pause has timed out and the program must be aborted so send amessage to the system to halt the sequence task and send it back to thetop of its FOREVER loop.

[0946] If (the program running was a HOLD program)

[0947] Send a message to the printer task to print the hold information.

[0948] Write a status record to the history file.

[0949] Return the user interface to its idle state.

[0950] Display an abort message.

[0951] End of Forever Loop

[0952] Display Task Overview

[0953] The purpose of the real time display task is to displaytemperatures, timers, sensor readings, ADC channel readings, and otherparameters that need to be continually updated every half second.

[0954] Display Task Pseudocode:

[0955] Initialize display task variables.

[0956] Do Forever

[0957] Wait for a message every half second from the timer task.

[0958] Go to sleep until the message is received.

[0959] When awakened, check if another task has sent a list ofparameters to display or a flag to halt the current update.

[0960] Toggle the half second flag {half_sec}.

[0961] If (there's a list of parameters to display) then

[0962] Set a semaphore so no one else will update the display.

[0963] Turn off the cursor.

[0964] While (stepping through the list of parameters)

[0965] If (it is a time parameter) then

[0966] Display the time.

[0967] If (half second flag {half_sec} is set) then

[0968] Increment or decrement the time variable.

[0969] Else if (it is a decimal number) then

[0970] Display a decimal number.

[0971] Else if (it is an integer number) then

[0972] Display the integer.

[0973] Else if (it is an ADC channel readout) then

[0974] Read the counts from the ADC channel.

[0975] If (need it displayed as mV) then

[0976] Convert counts to mV.

[0977] Display the value.

[0978] Else if (it is a power display) then

[0979] Display the power in terms of watts.

[0980] Else if (it is the hours left parameter) then

[0981] Convert seconds to tenths of hours.

[0982] Display the hours left in tenths of hours.

[0983] If (half second flag {half sec} is set) then

[0984] Decrement the seconds variable.

[0985] If (the cursor was on) then

[0986] Turn it back on.

[0987] Store the current system time in battery RAM.

[0988] Clear the semaphore to release the display.

[0989] End of Forever Loop

[0990] Printer Task Overview

[0991] The purpose of the printer task is to handle the runtimeprinting. It is a low priority task and should not interfere with othertime critical tasks.

[0992] Printer Task Pseudocode:

[0993] Do Forever

[0994] Wait for a message from another task that wishes to print.

[0995] Go to sleep until a message is received.

[0996] When awaken, make local copies of the global variables to beprinted.

[0997] Post a printer acknowledgement message.

[0998] If (need to print a status or error message) then

[0999] Print the information contained in the current history record.

[1000] Else if (need to print the page header) then

[1001] Print the company name, instrument ID, firmware version numberand the current system time and date.

[1002] Else if (need to print the program header) then

[1003] Print the type of program and its number.

[1004] Else if (need to print the program configuration parameters) then

[1005] Print the tube type, reaction volume and the sample temperaturedeviation from setpoint that starts the clock.

[1006] Else if (need to print end of cycle information) then

[1007] Print the ending time and temperature.

[1008] Else if (need to print segment information) then

[1009] Print either the ramp or hold segment information.

[1010] Else if (need to print a pause status message) then

[1011] Print the amount of time paused for and at what temp.

[1012] End of Forever Loop

[1013] LED Task Overview

[1014] The purpose of the LED task is to make the illumination of the“Heating” LED reflect the power applied to the main heater. This is alow priority task that runs once a second.

[1015] LED Task Pseudocode:

[1016] Initialize LED task variables.

[1017] Do Forever

[1018] Send a message to the system to wake this task every second.

[1019] Go to sleep.

[1020] When awaken, load counter 2 of PIC timer A with a value thatreflects the power applied to the main heater as follows:

load counter with value={K_htled}*{ht_led}

[1021] Where:

[1022] {K_htled} holds a constant to compute the time to pulse theheating LED and is equal to 15200/500. 15200 is a little greater thanthe PIC's clock of 14.4 KHz and this is the value loaded into the timerto keep the LED constantly on. 500 is the main heater power.

[1023] {ht_led} will be a value between 0 and 500 and will be equal tothe watts applied to the main heater.

[1024] End of Forever Loop

[1025] Link Task Overview

[1026] The purpose of the link task is to simulate the user pressing theSTART key on the keypad. This task is necessary so that programs can beexecuted one right after the other (as in a method) without userintervention. The link task wakes up the sequence task and it beginsrunning the next program as if the START key were pressed.

[1027] Link Task Pseudocode:

[1028] Initialize link task variables.

[1029] Do Forever

[1030] If (the flag {weird_flag} is set and it is not the first file in

[1031] the method) then

[1032] Send a message to the sequence task to wake up and run a program.

[1033] End of Forever Loop

Start Up Sequence Power-Up Sequence

[1034] When the power to the instrument is turned on or the softwaredoes a RESET, the following sequence takes place. Note: the numbersbelow correspond to numbers on the flow chart in FIGS. 53 and 54.

[1035] 1. Transmit a Ctrl-G (decimal 7) character out the RS-232 printerport. Poll the RS-232 port for at least 1 second and if a Ctrl-G isreceived, it is assumed that an external computer is attached to theport and all communication during the power-up sequence will beredirected from the keypad to the RS-232 port. If no Ctrl-G is received,the power-up sequence continues as normal.

[1036] 2. Check if the MORE key is depressed. If so, go straight to theservice-only hardware diagnostics.

[1037] 3. The next 3 tests are an audio/visual check and cannot reportan error: 1) the beeper beeps 2) the hot, cooling, and heating LEDs onthe keypad are flashed 3) each pixel of the display is highlighted. Thecopyright and instrument ID screens are displayed as the power-updiagnostics execute.

[1038] 4. Should an error occur in one of the power-up diagnostics, thename of the component that failed is displayed and the keypad is lockedexcept for the code ‘MORE 999’ which will gain access to theservice-only hardware diagnostics.

[1039] 5. Check channel 0 of the PPI-B device to see if the automatedtest bit is pulled low. If it is, run the UART test. If the test passes,beep the beeper continuously.

[1040] 6. Start the CRETIN operating system which in turn will start upeach task by priority level.

[1041] 7. Check a flag in battery RAM to see if the instrument has beencalibrated. If not, display an error message and lock the keypad exceptfor the code ‘MORE 999’ which will gain access to the service-onlycalibration tests.

[1042] 8. Run a test that measures the voltage and line frequency andsee if both these values match the configuration plug selected whilecalibrating the instrument. If not, display an error message and lockthe keypad except for the code ‘MORE 999’ which will gain access to theservice-only calibration tests.

[1043] 9. Perform the heater ping test as described in the Installsection. If the heaters are wired wrong, display an error message andlock the keypad except for the code ‘MORE 999’ which will gain access tothe service-only calibration tests.

[1044] 10. Check a flag in battery RAM to see if the instrument has beeninstalled. If not, display an error message and lock the keypad exceptfor the code ‘MORE 999’ which will gain access to the install routine.

[1045] 11. If not in remote mode, check a flag in battery RAM to see ifthere was a power failure while the instrument was running. If so, starta 4° C. soak and display the amount of time the power was off for. Askthe user if they wish to view the history file which will tell themexactly how far along they were in the run when the power went off. Ifthey select yes, they go straight to the user diagnostics.

[1046] 12. Beep the beeper and clear the remote mode flag so allcommunication now is back through the keypad.

[1047] 13. Check a flag in battery RAM to see if manufacturing wantstheir test program automatically started. If so, start the programrunning and reset the instrument after its done.

[1048] 14. Display the top level user interface screen.

Electronics and Software Version 2

[1049] Referring to FIGS. 47A and 47B (hereafter FIG. 47), there isshorn a block diagram for the electronics of a preferred embodiment of acontrol system in a class of control systems represented by CPU block 10in FIG. 1. The purpose of the control electronics of FIG. 47 is, interalia, to receive and store user input data defining the desired PCRprotocol, read the various temperature sensors, calculate the sampletemperature, compare the calculated sample temperature to the desiredtemperature as defined by the user defined PCR protocol, monitor thepower line voltage and control the film heater zones and the rampcooling valves to carry out the desired temperature profile of the userdefined PCR protocol.

[1050] A microprocessor (hereafter CPU) 450 executes the control programdescribed below and given in Microfiche Appendix F in source code form.In the preferred embodiment, the CPU 450 is an OKI CMOS 8085. The CPUdrives an address bus 452 by which various ones of the other circuitelements in FIG. 47 are addressed. The CPU also drives a data bus 454 bywhich data is transmitted to various of the other circuit elements inFIG. 47.

[1051] The control program of Microfiche Appendix F and some systemconstants are stored in EPROM 456. User entered data and other systemconstants and characteristics measured during the install process(install program execution described below) are stored in battery backedup RAM 458. A system clock/calendar 460 supplies the CPU 450 with dateand time information for purposes of recording a history of eventsduring PCR runs and the duration of power failures as described below inthe description of the control software.

[1052] An address decoder 462 receives and decodes addresses from theaddress bus 452 and activates the appropriate chip select lines on achip select bus 464.

[1053] The user enters PCR protocol data via a keyboard 466 in responseto information displayed by CPU on display 468. The two waycommunication between the user and the CPU 450 is described in moredetail below in the user interface section of the description of thecontrol software. A keyboard interface circuit 470 converts userkeystrokes to data which is read by the CPU via the data bus 454.

[1054] Two programmable interval timers 472 and 474 each containcounters which are loaded with counts calculated by the CPU 450 tocontrol the intervals during which power is applied to the various filmheater zones.

[1055] An interrupt controller 476 sends interrupt requests to the CPU450 every 200 milliseconds causing the CPU 450 to run the PID taskdescribed below in the description of the control software. This taskreads the temperature sensors and calculates the heating or coolingpower necessary to move the sample temperature from its current level tothe level desired by the user for that point in time in the PCR protocolbeing executed.

[1056] A UART 478 services an RS232 interface circuit 480 such that datastored in the RAM 480 may be output to a printer. The control softwaremaintains a record of each PCR run which is performed with respect tothe actual temperatures which existed at various times during the runfor purposes of user validation that the PCR protocol actually executedcorresponded to the PCR protocol desired by the user. In addition, userentered data defining the specific times and temperatures desired duringa particular PCR protocol is also stored. All this data and other dataas well may be read by the CPU 450 and output to a printer coupled tothe RS232 port via the UART 478. The RS232 interface also allows anexternal computer to simulate the keypad and display.

[1057] A programmable peripheral interface (hereafter PPI) 482 serves asa programmable set of 3 input/output registers. At power-up, the CPU 450selects the PPI 482 via the address decoder 462 and the chip select bus464. The CPU then writes a data word to the PPI via data bus 454 toprogram the PPI 482 regarding which registers are to be output ports andwhich are to be input ports. Subsequently, the CPU 450 uses the outputregisters to store data words written therein by the CPU via the databus 454 to control the internal logic state of a programmable arraylogic chip (PAL) 484.

[1058] The PAL 484 is a state machine which has a plurality of inputsignals and a plurality of output signals. PAL's in general contain anarray of logic which has a number of different states. Each state isdefined by the array or vector of logic states at the inputs and eachstate results in a different array or vector of logic states on theoutputs. The CPU 450, PPI 482, PAL 484 and several other circuits to bedefined below cooperate to generate different states of the variousoutput signals from the PAL 484. These different states and associatedoutput signals are what control the operation of the electronics shownin FIG. 47 as will be described below.

[1059] A 12 bit analog-to-digital converter (A/D) 486 converts analogvoltages on lines 488 and 490 to digital signals on data bus 454. Theseare read by the CPU by generating an address for the A/D converter suchthat a chip select signal on bus 464 coupled to the chip select input ofthe A/D converter goes active and activates the converter. The analogsignals on lines 488 and 490 are the output lines of two multiplexers492 and 494. Multiplexer 492 has four inputs ports, each having twosignal lines. Each of these ports is coupled to one of the fourtemperature sensors in the system. The first port is coupled to thesample block temperature sensor. The second and third ports are coupledto the coolant and ambient temperature sensors, respectively and thefourth port is coupled to the heated cover temperature sensor. A typicalcircuit for each one of these temperature sensors is shown in FIG. 48. A20,000 ohm resistor 496 receives at a node 497 a regulated +15 voltregulated power supply 498 in FIG. 47 via a bus connection line which isnot shown. This +15 volts D.C. signal reverse biases a zener diode 500.The reverse bias current and the voltage drop across the zener diode arefunctions of the temperature. The voltage drop across the diode is inputto the multiplexer 292 via lines 502 and 504. Each temperature sensorhas a similar connection to the multiplexer 292.

[1060] Multiplexer 494 also has 4 input ports but only three areconnected. The first input port is coupled to a calibration voltagegenerator 506. This voltage generator outputs two precisely controlledvoltage levels to the multiplexer inputs and is very thermally stable.That is, the reference voltage output by voltage source 506 drifts verylittle if at all with temperature. This voltage is read from time totime by the CPU 450 and compared to a stored constant which representsthe level this reference voltage had at a known temperature as measuredduring execution of the install process described below. If thereference voltage has drifted from the level measured and stored duringthe install process, the CPU 450 knows that the other electroniccircuitry used for sensing the various temperatures and line voltageshas also drifted and adjusts their outputs accordingly to maintain veryaccurate control over the temperature measuring process.

[1061] The other input to the multiplexer 494 is coupled via line 510 toan RMS-to-DC converter circuit 512. This circuit has an input 514coupled to a step-down transformer 516 and receives an A.C. voltage atinput 514 which is proportional to the then existing line voltage atA.C. power input 518. The RMS-to-DC converter 512 rectifies the A.C.voltage and averages it to develop a D.C. voltage on line 510 which alsois proportional to the A.C. input voltage on line 518.

[1062] Four optically coupled triac drivers 530, 532, 534 and 536receive input control signals via control bus 538 from PAL logic 484.Each of the triac drivers 530, 532 and 534 controls power to one of thethree film heater zones. These heater zones are represented by blocks254, 260/262 and 256/258 (the same reference numerals used in FIG. 13).The triac driver 536 controls power to the heated cover, represented byblock 544 via a thermal cut-out switch 546. The heater zones of the filmheater are protected by a block thermal cutout switch 548. The purposeof the thermal cutout switches is to prevent meltdown of the filmheater/sample block on the heated cover in case of a failure leading tothe triac drivers being left on for an unsafe interval. If such an eventhappens, the thermal cut-out switches detect an overly hot condition,and shut down the triacs via signals on lines 552 or 554.

[1063] The main heater zone of the film heater is rated at 360 wattswhile the manifold and edge heater zones are rated at 180 watts and 170watts respectively. The triac drivers are Motorola MAC 15A10 15 amptriacs. Each heater zone is split into 2 electrically isolated sectionseach dissipating ½ the power. The 2 halves are connected in parallel forline voltages at 518 less than 150 volts RMS. For line voltages greaterthan this, the two halves are connected in series. These alternateconnections are accomplished through a “personality” plug 550.

[1064] The AC power supply for the film heater zones is line 559, andthe AC supply for the heated cover is via line 560.

[1065] A zero crossing detector 566 provides basic system timing byemitting a pulse on line 568 at each zero crossing of the AC power online 518. The zero crossing detector is a National LM 311N referenced toanalog ground and has 25 mV of hysteresis. The zero crossing detectortakes its input from transformer 516 which outputs A.C. signal from 0 to5.52 volts for an A.C. input signal of from 0 to 240 volts A.C.

[1066] A power transformer 570 supplies A.C. power to the pump 41 thatpumps coolant through the ramp and bias cooling channels. Therefrigeration unit 40 also receives its A.C. power from the transformer570 via another portion of the personality plug 550.

[1067] The transformer 550 also supplies power to three regulated powersupplies 572, 498 and 574 and one unregulated power supply 576.

[1068] For accuracy purposes in measuring the temperatures, thecalibration voltage generator 506 uses a series of very precise,thin-film, ultralow temperature drift 20K ohm resistors (not shown inFIG. 47 but shown as resistors RA1 in the schematics of MicroficheAppendix E). These same ultralow drift resistors are used to set thegain of an analog amplifier 578 which amplifies the output voltage fromthe selected temperature sensor prior to conversion to a digital value.These resistors drift only 5 ppm/C°.

[1069] All the temperature sensors are calibrated by placing them(separated from the structures whose temperatures they measure) first ina stable, stirred-oil, temperature controlled bath at 40° C. andmeasuring the actual output voltages at the inputs to the multiplexer492. The temperature sensors are then placed in a bath at a temperatureof 95° C. and their output voltages are again measured at the samepoints. The output voltage of the calibration voltage generator 506 isalso measured at the input of the multiplexer 494. For each temperature,the digital output difference from the A/D converter 486 between each ofthe temperature sensor outputs and the digital output that results fromthe voltage generated by the calibration voltage generator 506 ismeasured. The calibration constants for each temperature sensor tocalibrate each for changes in temperature may then be calculated.

[1070] The sample block temperature sensor is then subjected to afurther calibration procedure. This procedure involves driving thesample block to two different temperatures. At each temperature level,the actual temperature of the block in 16 different sample wells ismeasured using 16 RTD thermocouple probes accurate to within 0.02° C. Anaverage profile for the temperature of the block is then generated andthe output of the A/D converter 464 is measured with the blocktemperature sensor in its place in the sample block. This is done atboth temperature levels. From the actual block temperature as measuredby the RTD probes and the A/D output for the block temperature sensor, afurther calibration factor can be calculated. The temperaturecalibration factors so generated are stored in battery backed up RAM458. Once these calibration factors are determined for the system, it isimportant that the system not drift appreciably from the electricalcharacteristics that existed at the time of calibration. It is importanttherefore that low drift circuits be selected and that ultralow driftresistors be used. The selections made for the analog components for anexemplary embodiment are given in Microfiche Appendix E.

[1071] The manner in which the CPU 450 controls the sample blocktemperature can be best understood by reference to the section belowdescribing the control program. However, to illustrate how theelectronic circuitry of FIG. 47 cooperates with the control software tocarry out a PCR protocol consider the following.

[1072] The zero crossing detector 566 has two outputs in output bus 568.One of these outputs emits a negative going pulse for every positivegoing transition of the A.C. signal across the zero voltage reference.The other emits a negative pulse upon every negative-going transition ofthe A.C. signal across the zero reference voltage level. These twopulses, shown typically at 580 define one complete cycle or two halfcycles. It is the pulse trains on bus 568 which define the 200millisecond sample periods. For 60 cycle/sec A.C. as found in the U.S.,200 milliseconds contains 24 half cycles.

[1073] A typical sample period is shown in FIG. 49. Each “tick” mark inFIG. 49 represents one half cycle. During each 200 msec sample period,the CPU 450 is calculating the amount of heating or cooling power neededto maintain the sample block temperature at a user defined setpoint orincubation temperature or to move the block temperature to a newtemperature depending upon where in the PCR protocol time line theparticular sample period lies. The amount of power needed in each filmheater zone is converted into a number of half cycles each heater zoneis to remain off during the next 200 msec sample period. Just before theend of the current sample period in which these calculations are made,the CPU 450 addresses each of the 4 timers in the programmable intervaltimer (PIT) 472. To each timer, the CPU writes data constituting a“present” count representing the number of half cycles the heater zoneassociated with that timer is to remain off in the next sample period.In FIG. 49, this data is written to the timers during interval 590 justpreceding the starting time 592 of the next sample period. Assume that arapid ramp up to the denaturation temperature of 94° C. is called for bythe user setpoint data for an interval which includes the sampleinterval between times 592 and 594. Accordingly, the film heaters willbe on for most of the period. Assume that the central zone heater is tobe on for all but three of the half cycles during the sample period. Inthis case, the CPU 450 writes a three into the counter in PIT 472associated with the central zone heater during interval 590. This writeoperation automatically causes the timer to issue a “shut off” signal onthe particular control line of bus 592 which controls the central zoneheater. This “shut off” signal causes the PAL 484 to issue a “shut off”signal on the particular one of the signal lines in bus 538 associatedwith the central zone. The triac driver 530 then shuts off at the nextzero crossing, i.e., at time 592. The PIT receives a pulse train ofpositive-going pulses on line 594 from the PAL 484. These pulses aretranslations of the zero-crossing pulses on 2-line bus 568 by PAL 484into positive going pulses at all zero crossing pulses on 2-line bus 568by PAL 484 into positive going pulses at all zero crossings on a singleline, i.e., line 594. The timer in PIT 472 associated with the centralfilm heater zone starts counting down from its present count of 3 usingthe half cycle marking pulses on line 594 as its clock. At the end ofthe third half cycle, this timer reaches 0 and causes its output signalline on bus 592 to change states.

[1074] This transition from the off to on state is shown at 596 in FIG.49. This transition is communicated to PAL 484 and causes it to changethe state of the appropriate output signal on bus 538 to switch thetriac driver 530 on at the third zero-crossing. Note that by switchingthe triacs on at the zero crossings as is done in the preferredembodiment, switching off of a high current flowing through an inductor(the film heater conductor) is avoided. This minimizes the generation ofradio frequency interference or other noise. Note that the technique ofswitching a portion of each half cycle to the film heater in accordancewith the calculated amount of power needed will also work as analternative embodiment, but is not preferred because of the noisegenerated by this technique.

[1075] The other timers of PIT 472 and 474 work in a similar manner tomanage the power applied to the other heater zones and to the heatedcover in accordance with power calculated by the CPU.

[1076] Ramp cooling is controlled by CPU 450 directly through theperipheral interface 482. When the heating/cooling power calculationsperformed during each sample period indicate that ramp cooling power isneeded, the CPU 450 addresses the programmable peripheral interface(PPI) 482. A data word is then written into the appropriate register todrive output line 600 high. This output line triggers a pair ofmonostable multivibrators 602 and 604 and causes each to emit a singlepulse, on lines 606 and 608, respectively. These pulses each have peakcurrents just under 1 ampere and a pulse duration of approximately 100milliseconds. The purpose of these pulses is to drive the solenoid valvecoils that control flow through the ramp cooling channels very hard toturn on ramp cooling flow quickly. The pulse on line 606 causes a driver610 to ground a line 612 coupled to one side of the solenoid coil 614 ofone of the solenoid operated valves. The other terminal of the coil 614is coupled to a power supply “rail” 616 at +24 volts DC from powersupply 576. The one shot 602 controls the ramp cooling solenoid operatedvalve for flow in one direction, and the one shot 604 controls thesolenoid operated valve for flow in the opposite direction.

[1077] Simultaneously, the activation of the RCOOL signal on line 600causes a driver 618 to be activated. This driver grounds the line 612through a current limiting resistor 620. The value of this currentlimiting resistor is such that the current flowing through line 622 isat least equal to the hold current necessary to keep the solenoid valve614 open. Solenoid coils have transient characteristics that requirelarge currents to turn on a solenoid operated valve but substantiallyless current to keep the valve open. When the 100 msec pulse on line 606subsides, the driver 612 ceases directly grounding the line 612 leavingonly the ground connection through the resistor 620 and driver 618 forholding current.

[1078] The solenoid valve 614 controls the flow of ramp cooling coolantthrough the sample block in only ½ the ramp cooling tubes, i.e., thetubes carrying the coolant in one direction through the sample block.Another solenoid operated valve 624 controls the coolant flow of coolantthrough the sample block in the opposite direction. This valve 624 isdriven in exactly the same way as solenoid operated valve 614 by drivers626 and 628, one shot 604 and line 608.

[1079] The need for ramp cooling is evaluated once every sample period.When the PID task of the control software determines from measuring theblock temperature and comparing it to the desired block temperature thatramp cooling is no longer needed, the RCOOL signal on line 600 isdeactivated. This is done by the CPU 450 by addressing the PIC 482 andwriting data to it which reverses the state of the appropriate bit inthe register in PIC 482 which is coupled to line 600.

[1080] The logic equations for PAL 484 are attached hereto as MicroficheAppendix D. The logic equations for the address decoder 462, which isalso programmable array logic, are also attached hereto is MicroficheAppendix D.

[1081] The PIT 474 also has two other timers therein which time a 20 Hzinterrupt and a heating LED which gives a visible indication when thesample block is hot and unsafe to touch.

[1082] The system also includes a beeper one shot 630 and a beeper 632to warn the user when an incorrect keystroke has been made.

[1083] The programmable interrupt controller 476 is used to detectinterrupts; Level 2-20 Hz; Level 3—Transmit Ready; Level 4—Receiveready; Level 5—Keyboard interrupt; Level 6-2 Hz signal for the displayand sequence task; and, Level 7—A.C. line zero cross.

[1084] The programmable peripheral interface 482 has four outputs (notshown) for controlling the multiplexers 492 and 494. These signals MUX1EN and MUX2 EN enable one or the other of the two multiplexers 492 and494 while the signals MUX 0 and MUX 1 control which channel is selectedfor input to the amplifier 578. These signals are managed so that onlyone channel from the two multiplexers can be selected at any one time.

[1085] An RLTRIG* signal resets a timeout one shot 632 for the heaterswhich disables the heaters via activation of the signal TIMEOUT EN* tothe PAL 484 if the CPU crashes. That is, the one shot 632 has apredetermined interval which it will wait after each reset before itactivates the signal TIMEOUT EN* which disables all the heater zones.The CPU 450 executes a routine periodically which addresses the PIC 482and writes data to the appropriate register to cause activation of asignal on line 634 to reset the one shot 632. If the CPU 450 “crashes”for any reason and does not execute this routine, the timeout one-shot632 disables all the heater zones.

[1086] The PIC 482 also has outputs COVHTR EN* and BLKHTREN* (not shown)for enabling the heated cover and the sample block heater. Both of thesesignals are active low and are controlled by the CPU 450. They areoutput to the PAL 484 via bus 636.

[1087] The PIC 482 also outputs the signals BEEP and BEEPCLR* on bus 640to control the beeper one shot 630.

[1088] The PIC 482 also outputs a signal MEM1 (not shown) which is usedto switch pages between the high address section of EPROM 456 and thelow address section of battery RAM 458. Two other signals PAGE SEL 0 andPAGE SEL 1 (not shown) are output to select between four 16K pages inEPROM 456.

[1089] The four temperature sensors are National LM 135 zener diode typesensors with a zener voltage/temperature dependence of 10 mV/° K. Thezener diodes are driven from the regulated power supply 498 through the20K resistor 496. The current through the zeners varies fromapproximately 560 μA to 615 μA over the 0° C. to 100° C. operatingrange. The zener self heating varies from 1.68 mW to 2.10 mW over thesame range.

[1090] The multiplexers 492 and 494 are DG409 analog switches. Thevoltages on lines 488 and 490 are amplified by an AD625KNinstrumentation amplifier with a transfer function ofV_(OUT)=3*V_(IN)−7.5. The A/D converter 486 is an AD7672 with an inputrange from 0-5 volts. With the zener temperature sensor output from 2.73to 3.73 volts over the 0° C. to 100° C. range, the output of theamplifier 578 will be 0.69 volts to 3.69 volts, which is comfortablywithin the A/D input range.

[1091] The keys to highly accurate system performance are good accuracyand low drift with changes in ambient temperature. Both of these goalsare achieved by using a precision voltage reference source, i.e.,calibration voltage generator 506, and continuously monitoring itsoutput through the same chain of electronics as are used to monitor theoutputs of the temperature sensors and the AC line voltage on line 510.

[1092] The calibration voltage generator 506 outputs two precisionvoltages on lines 650 and 652. One voltage is 3.75 volts and the otheris 3.125 volts. These voltages are obtained by dividing down a regulatedsupply voltage using a string of ultralow drift, integrated, thin filmresistors with a 0.05% match between resistors and a 5 ppm/degree C.temperature drift coefficient between resistors. The calibration voltagegenerator also generates −5 volts for the A/D converter referencevoltage and −7.5 volts for the instrumentation amplifier offset. Thesetwo voltages are communicated to the A/D 486 and the amplifier 578 bylines which are not shown. These two negative voltages are generatedusing the same thin film resistor network and OP 27 GZ op-amps (notshown). The gain setting resistors for the operational amplifier 578 arealso the ultralow drift, thin-film, integrated, matched resistors.

[1093] The control firmware, control electronics and the block designare designed such that well-to-well and instrument-to-instrumenttransportability of PCR protocols is possible.

[1094] High throughput laboratories benefit from instruments which areeasy to use for a wide spectrum of lab personnel and which require aminimal amount of training. The software for the invention was developedto handle complex PCR thermocycling protocols while remaining easy toprogram. In addition, it is provided with safeguards to assure theintegrity of samples during power interruptions, and can document thedetailed events of each run in safe memory.

[1095] After completing power-up self-checks shown in FIGS. 53 and 54,and described more fully in Microfiche Appendix B, to assure theoperator that the system is operating properly, the user interface ofthe invention offers a simple, top-level menu, inviting the user to run,create or edit a file, or to access a utility function. No programmingskills are required, since pre-existing default files can be quicklyedited with customized times and temperatures, then stored in memory forlater use. A file protection scheme prevents unauthorized changes to anyuser's programs. A file normally consists of a set of instructions tohold a desired temperature or to thermocycle. Complex programs arecreated by linking files together to form a method. A commonly usedfile, such as a 4° C. incubation following a thermocycle, can be storedand then incorporated into methods created by other users. A new type offile, the AUTO file is a PCR cycling program which allows the user tospecify which of several types of changes to control parameters willoccur each cycle: time incrementing (auto segment extension, for yieldenhancement), time decrementing, or temperature incrementing ordecrementing. For the highest degree of control precision and mostreliable methods transferability, temperatures are setable to 0.1° C.,and times are programmed to the nearest second. The invention has theability to program a scheduled PAUSE at one or more setpoints during arun for reagent additions or for removal of tubes at specific cycles.

[1096] The system of the invention has the ability to store a 500 recordhistory file for each run. This feature allows the user to review theindividual steps in each cycle and to flag any special status or errormessages relating to irregularities. With the optional printer, theinvention provides hardcopy documentation of file and method parameters,run-time time/temperature data with a time/date stamp, configurationparameters, and sorted file directories.

[1097] In order to assure reproducible thermocycling, the computedsample temperature is displayed during the ramp and hold segments ofeach cycle. A temperature one degree different than the set temperatureis normally used to trigger the ramp-time and hold-time clocks, but thiscan be altered by the user. For some tube types, the invention willprovide the proper time constant for the type of tube and volume used (acapability is provided for users to enter time constants in a table forother tube types, so subsequently only the tube type would have to beentered before a run), so the sample will always approach the desiredsample temperature with the same accuracy, regardless of whether long orshort sample incubation times have been programmed. Users can programslow ramps for the specialized annealing requirements of degenerateprimer pools, or very short (1-5 sec) high-temperature denaturationperiods for very GC rich targets. Intelligent defaults are preprogrammedfor 2- and 3-temperature PCR cycles.

[1098] Diagnostic tests can be accessed by any users to check theheating and cooling system status and to verify the calibration, sincethe software gives Pass/Fail reports. In addition, a system performanceprogram performs a comprehensive subsystem evaluation and generates asummary status report.

[1099] The control firmware is comprised of several sections which arelisted below:

[1100] Diagnostics

[1101] Calibration

[1102] Install

[1103] Real time operating system

[1104] Nine prioritized tasks that manage the system

[1105] Start-up sequence

[1106] User interface

[1107] The various sections of the firmware will be described witheither textual description, pseudocode or both. The actual source codein C language is included below as Microfiche Appendix F.

[1108] Features of the firmware are:

[1109] 1. A Control system that manages the average sample blocktemperature to within +/−0.1° C. as well as maintaining the temperaturenon-uniformity as between wells in the sample block to within +/−0.5° C.

[1110] 2. A temperature control system that measures and compensates forline voltage fluctuations and electronic temperature drift.

[1111] 3. Extensive power up diagnostics that determine if systemcomponents are working.

[1112] 4. Comprehensive diagnostics in the install program which qualifythe heating and cooling systems to insure they are working properly.

[1113] 5. A logical and organized user interface, employing a menudriven system that allows instrument operation with minimal dependencyon the operators manual.

[1114] 6. The ability to link up to 17 PCR protocols and store them as amethod.

[1115] 7. The ability to store up to 150 PCR protocols and methods inthe user interface.

[1116] 8. A history file that records up to 500 events of the previousrun as part of the sequence task.

[1117] 9. The ability to define the reaction volume and tube size typeat the start of a run for maximum temperature accuracy and control aspart of the user interface and which modifies tau (the tube timeconstant) in the PID task.

[1118] 10. Upon recovery from a power failure, the system drives thesample block to 4° C. to save any samples that may be loaded in thesample compartment. The analyzer also reports the duration of the powerfailure as part of the start-up sequence.

[1119] 11. The ability to print history file contents, “run time”parameters and stored PCR protocol parameters as part of the print task.

[1120] 12. The ability to configure the temperature to which theapparatus will return during any idle state.

[1121] 13. The ability to check that the setpoint temperature is reachedwithin a reasonable amount of time.

[1122] 14. The ability to control the instrument remotely via an RS232port.

[1123] There are several levels of diagnostics which are describedbelow:

[1124] A series of power-up tests are automatically performed each timethe instrument is turned on. They evaluate critical areas of thehardware without user intervention. Any test that detects a componentfailure will be run again. If the test fails twice, an error message isdisplayed and the keyboard is electronically locked to prevent the userfrom continuing.

[1125] The following areas are tested:

[1126] Programmable Peripheral Interface device

[1127] Battery RAM device

[1128] Battery RAM checksum

[1129] EPROM devices

[1130] Programmable Interface Timer devices

[1131] Clock/Calendar device

[1132] Programmable Interrupt Controller device

[1133] Analog to Digital section

[1134] Temperature sensors

[1135] Verify proper configuration plug

[1136] A Series of service only diagnostics are available to finaltesters at the manufacturer's location or to field service engineersthrough a “hidden” keystroke sequence (i.e. unknown to the customer).Many of the tests are the same as the ones in the start up diagnosticswith the exception that they can be continually executed up to 99 times.

[1137] The following areas are tested:

[1138] Programmable Peripheral Interface device

[1139] Battery RAM device

[1140] Battery RAM checksum

[1141] EPROM devices

[1142] Programmable Interface Timer devices

[1143] Clock/Calendar device

[1144] Programmable Interrupt Controller device

[1145] Analog to Digital section

[1146] RS-232 section

[1147] Display section

[1148] Keyboard

[1149] Beeper

[1150] Ramp Cooling Valves

[1151] Check for EPROM mismatch

[1152] Firmware version level

[1153] Battery RAM Checksum and Initialization

[1154] Clear Calibration Flag

[1155] Heated Cover heater and control circuitry

[1156] Edge heater and control circuitry

[1157] Manifold heater and control circuitry

[1158] Central heater and control circuitry

[1159] Sample block thermal cutoff test

[1160] Heated cover thermal cutoff test

[1161] User diagnostics are also available to allow the user to performa quick cool and heat ramp verification test, an extensive confirmationof the heating and cooling system and to verify sample blockcalibration. These diagnostics also allow the user to view the historyfile, which is a sequential record of events that occurred in theprevious run. The records contain time, temperature, setpoint number,cycle number, program number and status messages.

[1162] Remote Diagnostics are available to allow control of the systemfrom an external computer via the RS-232 port. All user functions andservice diagnostics and instrument calibration can be performedremotely.

[1163] Calibration to determine various parameters such as heaterresistance, etc. is performed. Access to the calibration screen islimited by a “hidden” key sequence (i.e. unknown to the customer). Thefollowing parameters are calibrated:

[1164] The configuration plug is a module that rewires the chiller unit,sample block heaters, coolant pump and power supplies for the propervoltage and frequency (100V/50 Hz, 100/60 Hz, 120/60 Hz, 220/50 Hz or230/50 Hz). The user enters the type of configuration plug installed.The firmware uses this information to compute the equivalent resistanceof the sample block heaters. Upon power-up, the system verifies that theconfiguration plug selected is consistent with the current line voltageand frequency.

[1165] The heater resistance must be determined in the calibrationprocess so that precise calculations of heater power delivered can bemade. The user enters the actual resistances of the six sample blockheaters (two main heaters, two manifold heaters and two edge heaters).The configuration plug physically wires the heater in series for 220-230VAC and in parallel for 100-120 VAC operation. The firmware computes theequivalent resistance of each of the three heaters by the followingformula:

For 100-120 VAC: R _(eq)=(R ₁ *R ₂)/R ₁ +R ₂  (7)

For 220-230 VAC: R _(eq) =R ₁ +R ₂  (8)

[1166] The equivalent resistance is used to deliver a precise amount ofheating power to the sample block (Power=Voltage²×Resistance).

[1167] The calibration of the A/D circuit is necessary so thattemperatures can be precisely measured. This is performed by measuringtwo test point voltages (TP6 and TP7 on the CPU board) and entering themeasured voltages. The output of the A/D at each voltage forms the basisof a two point calibration curve. These voltages are derived from a 5volt precision source and are accurate and temperature independent. Atthe start of each run, these voltages are read by the system to measureelectronic drift due to temperature because any changes in A/D output isdue to temperature dependencies in the analog chain (multiplexer, analogamplifier and A/D converter).

[1168] Calibration of the four temperature sensors (sample block,ambient, coolant and heated cover) is performed for accurate temperaturemeasurements. Prior to installation into an instrument, the ambient,coolant, and heated cover temperature sensors are placed in a water bathwhere their output is recorded (XX.X° C. at YYYY mV). These values arethen entered into the system. Since temperature accuracy in these areasis not critical, a one point calibration curve is used.

[1169] The sample block sensor is calibrated in the instrument. An arrayof 15 accurate temperature probes is strategically placed in the sampleblock in the preferred embodiment. The output of the temperature probesis collected and averaged by a computer. The firmware commands the blockto go to 40° C. After a brief stabilizing period the user enters theaverage block temperature as read by the 15 probes. This procedure isrepeated at 95° C., forming a two point calibration curve.

[1170] Calibration of the AC to DC line voltage sampling circuit isperformed by entering into the system the output of the AC to DC circuitfor two given AC input voltages, forming a two point calibration curve.The output of the circuit is not linear over the required range (90-260VAC) and therefore requires two points at each end (100 and 120, 220 and240 VAC), but only uses one set based on the current input voltage.

[1171] An accurate measure of AC voltage is necessary to deliver aprecise amount of power to the sample block (Power=Voltage²×Resistance).The Install program is a diagnostic tool that performs an extensive testof the cooling and heating systems. Install measures or calculatescontrol cooling conductance, ramp cooling conductance at 10° C. and 18°C., cooling power at 10° C. and 20° C., sample block thermal and coolantcapacity and sample block sensor lag. The purpose of install is threefold:

[1172] 1. To uncover marginal or faulty components.

[1173] 2. To use some of the measured values as system constants storedin battery backed up RAM to optimize the control system for a giveninstrument.

[1174] 3. To measure heating and cooling system degradation over time.

[1175] Install is executed once before the system is shipped and shouldalso be run before use or whenever a major component is replaced. TheInstall program may also be run by the user under the user diagnostics.

[1176] The heater ping test verifies that the heaters are properlyconfigured for the current line voltage (i.e. in parallel for 90-132 VACand in series for 208-264 VAC). The firmware supplies a burst of powerto the sample block and then monitors the rise in temperature over a 10second time period. If the temperature rise is outside a specified ramprate window, then the heaters are incorrectly wired for the current linevoltage and the install process is terminated.

[1177] The control cooling conductance tests measures the thermalconductance K_(cc) across the sample block to the control coolingpassages. This test is performed by first driving the sample blocktemperature to 60° C. (ramp valves are closed), then integrating theheater power required to maintain the block at 60° C. over a 90 secondtime period. The integrated power is divided by the sum of thedifference between the block and coolant temperature over the interval.

K_(cc)=Σ Heater Power_(60° C.)/Σ Block−Coolant Temp  (9)

[1178] Typical values are 1.31 to 1.78 Watts/° K. A low K_(cc) mayindicate a clogged liner(s). A high K_(cc) may be due to a ramp valvethat is not completely closed, leakage of the coolant to the outsidediameter of the liner, or a liner that has shifted.

[1179] The block thermal capacity (Blk Cp) test measures the thermalcapacity of the sample block by first controlling the block at 35° C.then applying the maximum power to the heaters for 20 seconds. The blockthermal capacity is equal to the integrated power divided by thedifference in block temperature. To increase accuracy, the effect ofbias cooling power is subtracted from the integrated power.

Blk Cp=ramp time*(heater−control cool pwr)/delta temp.  (10)

[1180] where:

[1181] ramp time=20 seconds

[1182] heater power=500 watts

[1183] control cool=(Σ block−coolant temp)*K_(cc)

[1184] delta temp=TBlock_(t=20)−TBlock_(t=0)

[1185] The typical value of Block Cp is 567 Joules/° K±45 for a 60 Hzinstrument. Assuming a normal K_(cc) value, an increase in block thermalcapacity is due to an increase in thermal loads, such as moisture in thefoam backing, loss of insulation around the sample block, or a decreasein heater power such as a failure of one of the six heater zones or afailure of the electronic circuitry that drives the heater zones, or anincorrect or an incorrectly wired voltage configuration module.

[1186] A chiller test measures the system cooling output in watts at 10°C. and 18° C. The system cooling power, or chiller output, at a giventemperature is equal to the summation of thermal loads at thattemperature. The main components are: 1. heating power required tomaintain the block at a given temperature, 2. power dissipated by thepump used to circulate the coolant around the system, and 3. losses inthe coolant lines to the ambient. The chiller power parameter ismeasured by controlling the coolant temperature at either 10° C. or 18°C. and integrating the power applied to the sample block to maintain aconstant coolant temperature, over a 32 second interval. The differencebetween the block and coolant temperature is also integrated to computelosses to ambient temperature.

Chiller power=Σ Heating power+Pump power+(Kamb*Σ(blk−cool temp))  (11)

[1187] where:

[1188] heating power=Sum of heating power required to

[1189] maintain coolant at 10° C. or 18° C. over time 32 seconds.

[1190] Pump Power=Circulating pump, 12 watts

[1191] Kamb=Conductance to ambient, 20 watts/° C.

[1192] blk-cool temp=Sum of difference in block and coolant temp overtime 32 seconds

[1193] The typical value for chiller power is 256 watts±76 for a 60 Hzinstrument at 10° C. and 383 watts±48 at 18° C. Low chiller power may bedue to an obstruction in the fan path, a defective fan, or a marginal orfaulty chiller unit. It may also be due to a miswired voltageconfiguration plug.

[1194] A ramp cooling conductance (K_(c)) test measures the thermalconductance at 10° C. and 18° C. across the sample block to the ramp andcontrol cooling passages. This test is performed by first controllingthe coolant temperature at 10° C. or 18° C., then integrating, over a 30second time interval, the heating power applied to maintain the coolantat the given temperature divided by the difference of block and coolanttemperature over the time interval.

K_(c)=Σ Heating power/Σ(block−coolant temperature)  (12)

[1195] Typical values for K_(c) are 33.4 watts/° K±7.4 at 10° C. and37.6 watts/° K±5 at 18° C. A low K_(c) may be due to a closed orobstructed ramp valve, kinked coolant tubing, weak pump or a hardwater/Prestone mixture.

[1196] A sensor lag test measures the block sensor lag by firstcontrolling the block temperature to 35° C. and then applying 500 wattsof heater power for 2 seconds and measuring the time required for theblock to rise 1° C. Typical values are 13 to 15 units, where each unitis equal to 200 ms. A slow or long sensor lag can be due to a poorinterface between the sensor and the block, such as lack of thermalgrease, a poorly machined sensor cavity or a faulty sensor.

[1197] The remaining install tests are currently executed by the installprogram but have limited diagnostic purposes due to the fact that theyare calculated values or are a function of so many variables that theirresults do not determine the source of a problem accurately.

[1198] The install program calculates the slope of the ramp coolingconductance (S_(c)) between 18° C. and 10° C. It is a measure of thelinearity of the conductance curve. It is also used to approximate theramp cooling conductance at 0° C. Typical values are 0.40±0.2. Thespread in values attest to the fact that it is just an approximation.

S _(c)=(Kc _(—)18°−Kc _(—)10°)/(18° C.−10° C.)  (13)

[1199] The install program also calculates the cooling conductanceK_(c0). K_(c0) is an approximation of the cooling conductance at 0° C.The value is extrapolated from the actual conductance at 10° C. Typicalvalues are 23 watts/° K±5. The formula used is:

K _(c0) =Kc _(—)10−(Sc*10° C.)  (14)

[1200] Characters enclosed in { } indicate the variable names used inthe source code.

[1201] Heater-Ping Test Pseudocode:

[1202] The heater ping test verifies that the heaters are properly wiredfor the current line voltage.

[1203] Get the sample block and coolant to a known and stable point.

[1204] Turn ON the ramp cooling valves

[1205] Wait for the block and coolant to go below 5° C.

[1206] Turn OFF ramp cooling valves

[1207] Measure the cooling effect of control cooling by measuring theblock temperature drop over a 10 second time interval. Wait 10 secondsfor stabilization before taking any measurements.

[1208] Wait 10 seconds

[1209] temp1=block temperature

[1210] Wait 10 seconds

[1211] temp2=block temperature

[1212] {tempa}=temp2−temp1

[1213] Examine the variable {linevolts} which contains the actualmeasured line voltage. Pulse the heater with 75 watts for a line voltagegreater than or equal to 190V or with 300 watts if it less than or equalto 140V.

[1214] if ({linevolts}>=190 Volts) then deliver 75 watts to heater

[1215] else if ({linevolts}<=140 Volts) then deliver 300 watts to heater

[1216] else display an error message

[1217] Measure the temperature rise over a 10 second time period. Theresult is the average heat rate in 0.01°/second.

[1218] temp1=block temperature

[1219] Wait 10 seconds

[1220] temp2=block temperature

[1221] {tempb}=temp2−temp1

[1222] Subtract the average heat rate {tempb} from the control coolingeffect to calculate true heating rate

heat_rate={tempb}−{tempa}  (17)

[1223] Evaluate the heat_rate. For 220V-230V, the heat rate should beless than 0.30°/second. For 100V-120V the heat rate should be greaterthan 0.30°/second.

[1224] if (linevoltage=220V and heat_rate>0.30°/second) then

[1225] Error->Heaters wired for 120V Lock up keyboard

[1226] if (linevoltage=120V and heat_rate<0.30°/second) then

[1227] Error ->Heaters wired for 220V

[1228] Lock up keyboard

[1229] KCC_Test Pseudocode:

[1230] This test measures the control cooling conductance also known asK_(cc).

[1231] K_(cc) is measured at a block temperature of 60° C.

[1232] Drive block to 60° C.

[1233] Maintain block temperature at 60° C. for 300 seconds

[1234] Integrate the power being applied to the sample block heatersover a 90 second time period. Measure and integrate the power requiredto maintain the block temperature with control cooling bias. {dt_sum} =0 (delta temperature sum) {main_pwr_sum} = 0 (main heater power sum){aux_pwr_sum} = 0 (auxiliary heater power sum) for (count = 1 to 90)  { {dt_sum} = {dt_sum} + (block temperature − coolant temperature)  wait 1sec  Accumulate the power applied to the main and  auxiliary heaters.The actual code resides in the  PID control task and is therefore summedevery  200 ms.  {main_pwr_sum} = {main_pwr_sum} + {actual_power} {aux_pwr_sum} = {aux_pwr_sum} + {aux1_actual} + {aux2_actual}  }

[1235] Compute the conductance by dividing the power sum by thetemperature sum. Note that the units are 10 mW/° K.

K _(cc)=({main_pwr_sum}+{aux_pwr_sum})/{dt_sum}  (18)

[1236] BLOCK_CP Test Pseudocode:

[1237] This test measures the sample block thermal capacity.

[1238] Drive the block to 35° C.

[1239] Control block temperature at 35° C. for 5 seconds and recordinitial temperature.

[1240] initial_temp=block temperature

[1241] Deliver maximum power to heaters for 20 seconds while summing thedifference in block to coolant temperature as well as heater power.

[1242] Deliver 500 watts {dt_sum} = 0 for (count = 1 to 20 seconds)  { {dt_sum} = {dt_sum} + (block temperature − coolant temperature)  wait 1second  } delta_temp = block temperature − initial_temp

[1243] Compute the joules in cooling power due to control cooling whichoccurs during ramp.

cool_joule=Control cooling conductance (K_(cc))*{dt_sum}  (20)

[1244] Compute the total joules applied to the block from the mainheater and control cooling. Divide by temp change over the interval tocompute thermal capacity.

Block CP=ramptime*(heater power−cool_joule)/delta_temp  (21)

[1245] where:

[1246] ramptime=20 seconds

[1247] heater power=500 Watts

[1248] COOL_PWR_(—)10:

[1249] This test measures the chiller power at 10° C.

[1250] Control the coolant temperature at 10° C. and stabilize for 20secs. count = 120 do while (count != 0) { if (coolant temperature = 10 ±0.5° C.) then   count = count − 1 else   count = 120 wait 1 second }

[1251] At this point, the coolant has been at 10° C. for 120 seconds andhas stabilized. Integrate, over 32 seconds, the power being applied tomaintain a coolant temperature of 10° C. {cool_init}  = coolanttemperature  {main_pwr_sum} = 0  {aux_pwr_sum} = 0  {delta_temp_sum} = 0 for (count = 1 to 32) { Accumulate the power applied to the main andauxiliary heaters. The actual code resides in the control task.{main_pwr_sum} = {main_pwr_sum} + actual_power  {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual + aux2_actual delta_temp_sum =delta_temp_sum + (ambient temp − coolant temp) wait 1 second }

[1252] Compute the number of joules of energy added to the coolant massduring the integration interval. “(coolant temp−cool_init)” is thechange in coolant temp during the integration interval. 550 is the Cp ofthe coolant in joules, thus the product is in joules. It represents theextra heat added to the coolant which made it drift from setpoint duringthe integration interval. This error is subtracted below from the totalheat applied before calculating the cooling power.

cool init=(coolant temp−cool_init)*550J  (22)

[1253] Add the main power sum to the aux heater sum to get joulesdissipated in 32 seconds. Divide by 32 to get the average joules/sec.

{main_pwr_sum}=({main_pwr_sum}+{aux_pwr_sum}−cool_init)/32  (23)

[1254] Compute the chiller power at. 10° C. by summing all the chillerpower components.

Power_(10° C.)=main_power_sum+PUMP PWR+(K_AMB*delta_temp_sum)  (24)

[1255] where:

[1256] {main_pwr sum}=summation of heater power over interval

[1257] PUMP PWR=12 Watts, pump that circulates coolant

[1258] delta_temp_sum=summation of amb−coolant over interval

[1259] K_AMB=20 Watts/K, thermal conductance from cooling to ambient.

[1260] KC_(—)10 Test Pseudocode:

[1261] This test measures the ramp cooling conductance at 10° C.

[1262] Control the coolant temperature at 10° C.±0.5 and allow it tostabilize for 10 seconds.

[1263] At this point, the coolant is at setpoint and is beingcontrolled. Integrate, over a 90 second time interval, the power beingapplied to the heaters to maintain the coolant at 10° C. Sum thedifference between the block and coolant temperatures. {main_pwr_sum} =0 {aux_pwr_sum} = 0 {dt_sum} = 0 for (count = 1 to 90) { Accumulate thepower applied to the main and auxiliary heaters. The actual code residesin the PID control task. {main_pwr_sum} = {main_pwr_sum} + actual_power{aux_pwr_sum} = {aux_pwr_sum} + aux1_actual + aux2_actual {dt_sum} ={dt_sum} + (block temperature − coolant temp) wait 1 second }

[1264] Compute the energy in joules delivered to the block over thesummation period. Units are in 0.1 watts.

{main_pwr_sum}={main_pwr_sum}+{aux_pwr_(—sum})  (25)

[1265] Divide the power sum by block−coolant temperature sum to get rampcooling conductance in 100 mW/K.

Kc _(—)10={main_pwr_sum}/{dt_sum}  (26)

[1266] COOL_PWR_(—)18 Test Pseudocode:

[1267] This test measures the chiller power at 18° C.

[1268] Get the sample block and coolant to a known and stable point.Control the coolant temperature at 18° C. and stabilize for 120 secs.count = 120 do while (count != 0) { if (coolant temperature = 18° C. ±0.5) then  count = count − 1 else  count = 120 wait 1 second }

[1269] At this point the coolant has been at 18° C. for 120 seconds andhas stabilized. Integrate, over 32 seconds, the power being applied tomaintain a coolant temperature of 18° C. {cool_init}   = coolanttemperature  {main_pwr_sum} = 0  {aux_pwr_sum} = 0  {delta_temp_sum} = 0for (count = 1 to 32) { Accumulate the power applied to the main andauxiliary heaters. The actual code resides in the control task.{main_pwr_sum} = {main_pwr_sum} + actual_power {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual + aux2_actual delta_temp_sum =delta_temp_sum + (ambient temp − coolant temp) wait 1 second }

[1270] Compute the number of joules of energy added to the coolant massduring the integration interval. “(coolant temp−cool_init)” is thechange in coolant temp during the integration interval. 550 is the Cp ofthe coolant in joules, thus the product is in joules. It represents theextra heat added to the coolant which made it drift setpoint during theintegration interval. This error is subtracted below from the total heatapplied before calculating the cooling power.

cool_init=(coolant temp−cool_init)*550J  (27)

[1271] Add main power sum to aux heater sum to get joules dissipated in32 seconds. Divide by 32 to get the average joules/sec.

{main_pwr_sum}=({main_pwr_sum}+{aux_pwr_sum}−cool_init)/32  (28)

[1272] Compute the chiller power at 18° C. by summing all the chillerpower components.

Power_(18° C.)=main_power_sum+PUMP PWR+(K_AMB*delta_temp_sum)  (29)

[1273] where:

[1274] {main_pwr_sum}=summation of heater power over interval

[1275] PUMP PWR=12 Watts, pump that circulates coolant

[1276] delta_temp_sum=summation of amb−coolant over interval

[1277] K_AMB=20 Watts/K, Thermal conductance from cooling to ambient.

[1278] KC_(—)18 Test Pseudocode:

[1279] This test measures the ramp cooling conductance at 18° C.

[1280] Control the coolant temperature at 18° C.±0.5 and allow it tostabilize for 10 seconds.

[1281] At this point, the coolant is at setpoint and being controlled.Integrate, over a 90 second time interval, the power being applied tothe heaters to maintain the coolant at 18° C. Sum the difference betweenthe block and coolant temperature. {main_pwr_sum} = 0 {aux_pwr_sum} = 0{dt_sum} = 0 for (count = 1 to 90) { Accumulate the power applied to themain and auxiliary heaters. The actual code resides in the control task.{main_pwr_sum} = {main_pwr_sum} + actual_power {aux_pwr_sum} ={aux_pwr_sum} + aux1_actual + aux2_actual {dt_sum} = {dt_sum} + (blocktemperature − coolant temp) wait 1 second }

[1282] Compute the energy in joules delivered to the block over thesummation period. Units are in 0.1 watts.

{main_pwr_sum}={main_pwr_sum}+{aux_pwr_sum}  (30)

[1283] Divide power sum by block—coolant temperature sum to get rampcooling conductance in 100 mW/K.

Kc _(—)18={main_pwr_sum}/{dt sum}  (31)

[1284] SENLAG Test Pseudocode:

[1285] This test measures the sample block sensor lag.

[1286] Drive the block to 35° C. Hold within ±0.2° C. for 20 secondsthen record temperature of block.

{tempa}=block temperature

[1287] Deliver 500 watts of power to sample block.

[1288] Apply 500 watts of power for the next 2 seconds and count theamount of iterations through the loop for the block temperature toincrease 1° C. Each loop iteration executes every 200 ms, thereforeactual sensor lag is equal to count*200 ms. secs = 0 count = 0 do while(TRUE) { if (secs >= 2 seconds) then   shut heaters off if (blocktemperature − tempa > 1.0° C.) then   exit while loop count = count + 1} end do while sensor lag = count

[1289] Real Time Operating System—Cretin

[1290] CRETIN is a stand alone, multitasking kernel that provides systemservices to other software modules called tasks. Tasks are written inthe “C” language with some time critical areas written in Intel 8085assembler. Each task has a priority level and provides an independentfunction. CRETIN resides in low memory and runs after the startupdiagnostics have successfully been executed.

[1291] CRETIN handles the task scheduling and allows only one task torun at a time. CRETIN receives all hardware interrupts thus enablingwaiting tasks to run when the proper interrupt is received. CRETINprovides a real time clock to allow tasks to wait for timed events orpause for known intervals. CRETIN also provides intertask communicationthrough a system of message nodes.

[1292] The firmware is composed of nine tasks which are brieflydescribed in priority order below. Subsequent sections will describeeach task in greater detail.

[1293] 1. The control task (PID) is responsible for controlling thesample block temperature.

[1294] 2. The keyboard task is responsible for processing keyboard inputfrom the keypad.

[1295] 3. The timer task waits for a half second hardware interrupt,then sends a wake up message to both the sequence and the display task.

[1296] 4. The sequence task executes the user programs.

[1297] 5. The pause task handles programmed and keypad pauses when aprogram is running.

[1298] 6. The display task. updates the display in real time.

[1299] 7. The printer task handles the RS-232 port communication andprinting.

[1300] 8. The LED task is responsible for driving the heating LED. It isalso used to control.the coolant temperature while executing Install.

[1301] 9. The link task starts files that are linked together in amethod by simulating a keystroke.

[1302] Block Temperature Control Program (PID Task)

[1303] The Proportional Integral Differential (PID) task is responsiblefor controlling the absolute sample block temperature to 0.1° C., aswell as controlling the sample block temperature non-uniformity (TNU,defined as the temperature of the hottest well minus the temperature ofthe coldest well) to less than ±0.5° C. by applying more heating powerto the perimeter of the block to compensate for losses through the guardband edges. The PID task is also responsible for controlling thetemperature of the heated cover to a less accurate degree. This taskruns 5 times per second and has the highest priority.

[1304] The amount of heating or cooling power delivered to the sampleblock is derived from the difference or “error” between the userspecified sample temperature stored in memory, called the setpoint, andthe current calculated sample temperature. This scheme follows thestandard loop control practice. In addition to a power contribution tothe film heaters directly proportional to the current error, i.e., theproportional component, (setpoint temperature minus sample blocktemperature), the calculated power also incorporates an integral termthat serves to close out any static error (Setpoint temperature Blocktemperature less than 0.5° C.). This component is called the integralcomponent. To avoid integral term accumulation or “wind-up”,contributions to the integral are restricted to a small band around thesetpoint temperature. The proportional and integral component gains havebeen carefully selected and tested, as the time constants associatedwith the block sensor and sample tube severely restrict the system'sphase margin, thus creating a potential for loop instabilities. Theproportional term gain is P in Equation (46) below and the integral termgain is Ki in Equation (48) below.

[1305] The PID task uses a “controlled overshoot algorithm” where theblock temperature often overshoots its final steady state value in orderfor the sample temperature to arrive at its desired temperature asrapidly as possible. The use of the overshoot algorithm causes the blocktemperature to overshoot in a controlled manner but does not cause thesample temperature to overshoot. This saves power and is believed to benew in PCR instrumentation. A controlled undershoot is also used. Theblock temperature is controlled such that it does not undershoot orovershoot by more than 0.5° C.

[1306] The total power delivered to all heater of the sample block toachieve a desired ramp rate is given by:

Power=(CP/ramp_rate)+bias  (40)

[1307] where:

[1308] CP=Thermal mass of block

[1309] bias=bias or control cooling power

[1310] ramp_rate=T_(final)−T_(initial)/desired ramp rate

[1311] This power is clamped to a maximum of 500 watts of heating powerfor safety.

[1312] With every iteration of the task (every 200 ms) the systemapplies heating or ramp cooling power (if necessary) based on thefollowing algorithms.

[1313] The control system is driven by the calculated sampletemperature. The sample temperature is defined as the averagetemperature of the liquid in a thin walled plastic sample tube placed inone of the wells of the sample block (hereafter the “block”). The timeconstant of the system (sample tube and its contents) is a function ofthe tube type and volume. At the start of a run, the user enters thetube type and th amount of reaction volume. The system computes aresultant time constant (σ or tau). For the MicroAmp™ tube and 100microliters of reaction volume, tau is approximately 9 seconds.

T _(blk-new) =T _(blk)+Power*(200 ms/CP)  (41)

T _(samp-new) =T _(samp)+(T _(blk-new) −T _(samp))*200 ms/tau  (42)

[1314] where:

[1315] T_(blk-new)=Current block temperature

[1316] T_(blk)=Block temperature 200 ms ago

[1317] Power=Power applied to block

[1318] CP=Thermal mass of block

[1319] T_(samp-new)=Current sample temperature

[1320] T_(samp)=Sample temperature 200 ms ago

[1321] tau=Thermal Time Constant of sample tube, adjusted for sensor lag(approximately 1.5)

[1322] The error signal or temperature is simply:

error=Setpoint−T _(samp-new)  (43)

[1323] As in any closed loop system, a corrective action (heating orcooling power) is applied to close out part of the current error. InEquation (45) below, F is the fraction of the error signal to be closedout in one sample period (200 mS).

T _(samp-new) =T _(samp) +F*(SP−T _(samp))  (44)

[1324] where SP=the user setpoint temperature

[1325] Due to the large lag in the system (long tube time constant), thefraction F is set low.

[1326] Combining formulas (42) and (44) yields:

T _(samp-new) =T _(samp)+(T _(blk-new) −T _(samp))*0.2/tau=T _(samp)+F*(SP−T _(samp))  (45)

[1327] Combining formulas (41) and (45) and adding a term P (theproportional term gain) to limit block temperature oscillations andimprove system stability yields:

Pwr=CP*P/T*((SP−T _(samp))*F*tau/T+T _(samp) −T _(blk))  (46)

[1328] where

[1329] P=the proportional term gain and

[1330] T=the sample period of 0.2 seconds (200 msec). and

[1331] P/T=1 in the preferred embodiment

[1332] Equation (46) is a theoretical equation which gives the power(Pwr) needed to move the block temperature to some desired value withoutaccounting for losses to the ambient through the guardbands, etc.

[1333] Once the power needed to drive the block is determined viaEquation (46), this power is divided up into the power to be deliveredto each of the three heater zones by the areas of these zones. Then thelosses to the manifolds are determined and a power term having amagnitude sufficient to compensate for these losses is added to theamount of power to be delivered to the manifold heater zone. Likewise,another power term sufficient to compensate for power lost to the blocksupport pins, the block temperature sensor and the ambient is added tothe power to be delivered to the edge heater zones. These additionalterms and the division of power by the area of the zones convertEquation (46) to Equations (3), (4) and (5) given above.

[1334] Equation (46) is the formula used by the preferred embodiment ofthe control system to determine the required heating or cooling power tothe sample block.

[1335] When the computed sample temperature is within the “integralband”, i.e., ±0.5° C. around the target temperature (SP), the gain ofthe proportional term is too small to close out the remaining error.Therefore an integral term is added to the proportional term to closeout small errors. The integral term is disabled outside the integralband to prevent a large error signal from accumulating. The algorithminside the “integral band” is as follows:

Int_sum(new)=Int_sum(old)+(SP−T _(samp))  (47)

pwr_adj=ki*Int_sum(new)  (48)

[1336] where,

[1337] Int_sum=the sum of the sample period of the difference betweenthe SP and T_(SAMP) temperature, and

[1338] Ki=the integral gain (512) in the preferred embodiment).

[1339] Once a heating power has been calculated, the control softwaredistributes the power to the three film heater zones 254, 262 and 256 inFIG. 13 based on area in the preferred embodiment. The edge heatersreceive additional power based upon the difference between the blocktemperature and ambient temperature. Similarly, the manifold heatersreceive additional power based upon the difference between the blocktemperature and the coolant temperature.

[1340] Characters enclosed in { } in the pseudocode given below for thePID task correspond to the variable names used in the source code ofMicrofiche Appendix F.

[1341] PID Pseudocode

[1342] Upon System Power up or Reset

[1343] Initialize PID variables

[1344] Read the line frequency

[1345] Initialize PIT and system clock

[1346] Turn off ramp cooling

[1347] Turn off all heaters

[1348] Calculate heater resistances

[1349] Do Forever—executes every 200 ms

[1350] If (block temperature>105) then

[1351] Turn off heaters

[1352] Turn on ramp valves

[1353] Display error message

[1354] Read the line voltage {linevolts}

[1355] Read the coolant sensor and convert to temperature {h2otemp}

[1356] Check if sensor reading is within normal operating range

[1357] Display an error message if it is not.

[1358] Read the ambient sensor and convert to temperature {ambtemp}

[1359] Check if sensor reading is within normal operating range

[1360] Display an error message if it is not.

[1361] Read the heated cover sensor and convert to temperature {cvrtemp}

[1362] Check if sensor reading is within normal operating range

[1363] Display an error message if it is not.

[1364] Read the sample block sensor and convert to temperature {blktemp}

[1365] Check if sensor reading is within normal operating range Displayan error message if it is not.

[1366] This portion of the code also reads the temperature stablevoltage reference and compares the voltage to a reference voltage thatwas determined during calibration of the instrument. If there is anydiscrepancy, the electronics have drifted and the voltage readings fromthe temperature sensors are adjusted accordingly to obtain accuratetemperature readings.

[1367] Compute the sample temperature {tubetenths} or the temperaturethat gets displayed by using a low-pass digital filter.

tubetenths=TT _(n-1)+(TB _(n) −TT _(n-1))*T/tau  (49)

[1368] where

[1369] TT_(n-1)=last sample temp {tubetenths}

[1370] TB_(n)=current block sensor temp {blktenths}

[1371] T=sample interval in seconds=200 ms

[1372] tau=tau tube {cf_tau}−tau sensor {cf_lag}

[1373] Equation (49) represents the first terms of a Taylor seriesexpansion of the exponential that defines the calculated sampletemperature given as Equation (6) above.

[1374] Compute the temperature of the foam backing underneath the sampleblock, {phantenths} known as the phantom mass. The temperature of thephantom mass is used to adjust the power delivered to the block toaccount for heat flow in and out of the phantom mass. The temperature iscomputed by using a low pass digital filter implemented in software.

phantenths=TT _(n-1)+(TB _(n) −TT _(n-1))*T/tau  (50)

[1375] where

[1376] TT_(n-1)=Last phantom mass temp {phantenths}

[1377] TB_(n)=Current block sensor temp {blktenths}

[1378] T=Sample interval in seconds=200 ms

[1379] tau_(foam)=Tau of foam block=30 secs.

[1380] Compute the sample temperature error (the difference between thesample temperature and the setpoint temperature) {abs_tube_err}.

[1381] Determine ramp direction {fast_ramp}=UP_RAMP or DN_RAMP

[1382] If (sample temperature is within ERR of setpoint (SP)) then PIDnot in fast transition mode. {fast_ramp}=OFF

[1383] where ERR=the temperature width of the “integral band”, i.e., theerror band surrounding the target or setpoint temperature.

[1384] Calculate current control cooling power {cool_ctrl} to determinehow much heat is being lost to the bias cooling channels.

[1385] Calculate current ramp cooling power {cool_ramp}

[1386] Calculate {cool_brkpt}. {cool_brkpt} is a cooling power that isused to determine when to make a transition from ramp to control coolingon downward ramps. It is a function of block and coolant temperature.

[1387] The control cooling power {cool_ctrl} and the ramp cooling power{cool_ramp} are all factors which the CPU must know to control downwardtemperature ramps, i.e., to calculate how long to keep the ramp coolingsolenoid operated valves open. The control cooling power is equal to aconstant plus the temperature of the coolant times the thermalconductance from the block to the bias cooling channels. Likewise, theramp cooling power is equal to the difference between the blocktemperature and the coolant temperature times the thermal conductancefrom the block to the ramp cooling channels. The cooling breakpoint isequal to a constant (given in Microfiche Appendix F) times thedifference in temperature between the block and the coolant.

[1388] Calculate a heating or cooling power {int_pwr} needed to move theblock temperature from its current temperature to the desired setpoint(SP) temperature.

{int_pwr}=KP*CP*[(SP−T _(samp))*{cf _(—kd}+) Ts−T _(BLK)]  (51)

[1389] where:

[1390] KP=Proportional gain=P/T in Equation (46)=approximately one inthe preferred embodiment

[1391] CP=Thermal mass of block

[1392] SP=Temperature setpoint

[1393] T_(SAMP)=Sample temperature

[1394] T_(BLK)=Block temperature

[1395] cf_kd=Tau*K_(d)/Delta_t where tau is the same tau as used inEquation (49) and K_(d) is a constant given in Microfiche Appendix F andDelta_t is the 200 msec sample period.

[1396] If the flag {normal_power} is set to 0 when doing a down ramp,then use the following power equation:

CP*P/t _(interval)*((SP−T _(B) _(n−1) )*F*tau/t _(interval))  (51.1)

[1397] If (sample temperature is within {cf_iband} of setpoint) then

[1398] integrate sample error {i_sum} else

clear{i_sum=0}.  (52)

[1399] Calculate the integral term power.

integral term={i_sum}*constant{cf_term}.  (53)

[1400] Add the integral term to the power.

{int_pwr}={int_pwr}+integral term  (54)

[1401] Adjust power to compensate for heating load due to the effects ofthe phantom mass (foam backing) by first finding the phantom mass powerthen adding it to power {int_pwr}.

[1402] Calculate phantom mass power {phant_pwr} by:

phant_pwr=C*(blktenths−phantenths)/10  (55)

[1403] where:

[1404] C=thermal mass of foam backing (1.0 W/K)

[1405] Adjust heater power

{int_pwr}={int_pwr}+{phant_pwr}

[1406] Compute power needed in manifold heaters {aux1_power} which willcompensate for loss from the sample block into the manifold edges thathave coolant flowing through it. Note that if the system is in adownward ramp, {aux1_power}=0. The manifold zone power required isdescribed below:

{aux1_power}=K1*(T _(BLK) −T _(AMB))+K2*(T _(BLK) −T_(COOL))+K5*(dT/dt)  (57)

[1407] where:

[1408] K1=Coefficient {cf_(—)1coeff}

[1409] K2=Coefficient {cf_(—)2coeff}

[1410] K5=Coefficient {cf_(—)5coeff}

[1411] dT/dt=Ramp rate

[1412] T_(BLK)=Block temperature

[1413] T_(AMB)=Ambient temperature

[1414] T_(COOL)=Coolant temperature

[1415] Compute power needed in edge heaters {aux2_power} which willcompensate for losses from the edges of the sample block to ambient.Note that if we are in a downward ramp {aux2_power}=0. The edge zonepower required is described below:

{aux2_power}=K3*(T _(BLK) −T _(AMB))+K4*(T _(BLK) −T_(COOL))+K6*(dT/dt)  (58)

[1416] where:

[1417] K3=Coefficient {cf_(—)3coeff}

[1418] K4=Coefficient {cf_(—)4coeff}

[1419] K6=Coefficient {cf_(—)6coeff}

[1420] dT/dt=Ramp rate

[1421] T_(BLK)=Block temperature

[1422] T_(AMP)=Ambient temperature

[1423] T_(COOL)=Coolant temperature

[1424] Delete contribution of manifold {aux1_power} and edge heaterpower {aux2_power} to obtain total power that must be supplied by mainheaters and coolers.

{int_pwr}={int_pwr}−{aux1_power}−{aux2_power}  (59)

[1425] [In an alternate version, the equation{int_pwr}={int_pwr}+{aux1_power}+{aux2_power} is used] Decide if theramp cooling should be applied. Note that {cool_brkpt} is used as abreakpoint from ramp cooling to control cooling.

[1426] If (int_pwr<-cool_brkpt and performing downward ramp) to decidewhether block temperature is so much higher than the setpointtemperature that ramp cooling is needed then

[1427] Turn ON ramp valves else

[1428] Turn OFF ramp valves and depend upon bias cooling

[1429] If (ramping down)

[1430] Check if the gain needs to be adjusted

[1431] Check if the alternate power equation (51.1) should be used

[1432] At this point, {int_pwr} contains the total heater power and{aux1_power} and {aux2_power} contain the loss from the block out to theedges. The power supplied to the auxiliary heaters is composed of twocomponents: aux_power and int_power. The power is distributed {int_pwr}to the main and auxiliary heaters based on area.

[1433] total_pwr=int_pwr

[1434] int_pwr=total_pwr*66%

[1435] aux1_power=total_pwr*20%+aux1_power

[1436] aux2_power=total_pwr*14%+aux2_power

[1437] If (ramping down)

[1438] Depending on the setpoint, the coolant temperature and the timeconstant of the tube, apply power to the heaters until the ramp coolingterminates.

[1439] Compute the number of half cycles for the triac to conduct foreach end zone and each iteration of the control loop to send theappropriate amount of power to the heaters. This loop executes onceevery ⅕ second, therefore there are 120/5=24 half cycles at 60 Hz or100/5=20 at 50 Hz. The number of half cycles is a function of requestedpower {int_pwr}, the current line voltage {linevolts} and the heaterresistance. Since the exact power needed may not be delivered each loop,a remainder is calculated {delta_power} to keep track of what to includefrom the last loop.

int_pwr=int_pwr+delta_power  (60)

[1440] Calculate the number of ½ cycles to keep the triac on. Index isequal to the number of cycles to keep the triac on.

index=power*main heater ohms*[20 or 24]/linevolts squared where Equation(61) is performed once for each heater zone and where “power”=int_pwrfor the main heater zone, aux1_pwr for the manifold heater zone andaux2_pwr for the edge heater zone.  (61)

[1441] Calculate the amount of actual power delivered.

actual_power=linevolts squared*index/main heater resistance  (62)

[1442] Calculate the remainder to be added next time.

delta_power=int_pwr−actual_power  (63)

[1443] Calculate the number of {fraction (1/2)} cycles for the edge andmanifold heaters using the same technique described for the main heatersby substituting {aux1_pwr} and {aux2_pwr} into Equation (60).

[1444] Load the calculated counts into the counters that control themain, manifold and edge triacs.

[1445] Look at heated cover sensor. If heated cover is less than 105°C., then load heated cover counter to supply 50 watts of power.

[1446] Look at sample temperature. If it is greater than 50° C., turn onHOT LED to warn user not to touch block.

[1447] END OF FOREVER LOOP

[1448] Keyboard Task

[1449] The purpose of the keyboard task is to wait for the user to pressa key on the keypad, compare the key to a list of valid keystrokes forthe current state, execute the command function associated with thevalid key and change to a new state. Invalid keystrokes are indicatedwith a beep and then ignored. This task is the heart of the state drivenuser interface. It is “state driven” because the action taken depends onthe current state of the user interface.

[1450] Keyboard Task Pseudocode:

[1451] Initialize keyboard task variables.

[1452] Turn off the cursor.

[1453] Check if the instrument has been calibrated, installed and hasthe correct configuration plug installed

[1454] If (the power failed while the user was running a program) then

[1455] Compute and display the number of minutes the power was off for.

[1456] Write a power failure status record to the history file.

[1457] Send a message to the sequence task to start a 4° C. soak.

[1458] Give the user the option of reviewing the history file.

[1459] If (the user request to review the history file) then

[1460] Go to the history file display.

[1461] Send a message to pid task to turn on the heated cover.

[1462] Display the top level screen.

[1463] Do Forever

[1464] Send a message to the system that this task is waiting for ahardware interrupt from the keypad.

[1465] Go to sleep until this interrupt is received.

[1466] When awakened, read and decode the key from the keypad.

[1467] Get a list of the valid keys for the current state.

[1468] Compare the key to the list of valid keys.

[1469] If (the key is valid for this state) then

[1470] Get the “action” and next state information for this key.

[1471] Execute the “action” (a command function) for this stat.

[1472] Go to the next state.

[1473] Else

[1474] Beep the beeper for an invalid key.

[1475] End of Forever Loop

[1476] Timer Task Overview

[1477] The purpose of the timer task is to wake up the sequence and thereal time display task every half a second. The timer task asks thesystem (CRETIN) to wake it up whenever the half second hardwareinterrupt that is generated by the clock/calendar device is received.The timer task then in turn sends a wake up message to the sequence taskand the real time display task respectively. This intermediate task isnecessary since CRETIN will only service one task per interrupt and thusonly the higher priority task (the sequence task) would execute.

[1478] Timer Task Pseudocode:

[1479] Do Forever

[1480] Send a message to the system that this task is waiting for ahardware interrupt from the clock/calendar device.

[1481] Go to sleep until this interrupt is received.

[1482] When awakened, send a message to the sequence and to the realtime display task.

[1483] End Forever Loop

[1484] Sequence Task Overview

[1485] The purpose of the sequence task is to execute the contents of auser defined program. It sequentially steps through each setpoint in acycle, consisting of a ramp and a hold segment, and sends out setpointtemperature messages to the pid task which in turn controls thetemperature of the sample block. At the end of each segment, it sends amessage to the real time display task to switch the display and amessage to the printer task to print the segment's runtime information.The user can pause a running program by pressing the PAUSE key on thekeypad then resume the program by pressing the START key. The user canprematurely abort a program by pressing the STOP key. This task executesevery half a second when it is awakened by the timer task.

[1486] Sequence Task Pseudocode:

[1487] Do Forever

[1488] Initialize sequence task variables.

[1489] Wait for a message from the keyboard task that the user haspressed the START key or selected START from the menu or a message fromlink task that the next program in a method is ready to run.

[1490] Go to sleep until this message is received.

[1491] When awaken, update the ADC calibration readings to account forany drift in the analog circuitry.

[1492] If (not starting the 4° C. power failure soak sequence) then

[1493] Send a message to the printer task to print the PE title line,system time and date, program configuration parameters, the program typeand its number.

[1494] If (starting a HOLD program) then

[1495] Get the temperature to hold at {hold_tp}.

[1496] Get the number of seconds to hold for {hold_time}.

[1497] If (ramping down more than 3° C. and {hold_tp}>45° C.) then

[1498] Post an intermediate setpoint.

[1499] Else

[1500] Post the final setpoint {hold_tp}.

[1501] While (counting down the hold time {hold_time})

[1502] Wait for half second wake up message from timer task.

[1503] Check block sensor for open or short.

[1504] If (keyboard task detected a PAUSE key) then

[1505] Post a setpoint of current sample temp.

[1506] Send a message to wake up the pause task.

[1507] Go to sleep until awakened by the pause task.

[1508] Post pre-pause setpoint.

[1509] If (an intermediate setpoint was posted) then

[1510] Post the final setpoint.

[1511] If (the setpoint temp is below ambient temp and will be there formore than 4 min.) then Set a flag to tell pid task to turn off theheated cover.

[1512] Increment the half second hold time counter {store_time}.

[1513] Post the final setpoint again in case the hold time expiredbefore the intermediate setpoint was reached—this insures the correctsetpoint will be written the history file.

[1514] Write a data record to the history file.

[1515] Send a message to the printer task to print the HOLD info.

[1516] End of HOLD program

[1517] Else if (starting a CYCLE program) then

[1518] Add up the total number of seconds in a cycle {secs_in run},taking into account the instrument ramp time and the user programmedramp and hold times.

[1519] Get the total number of seconds in the program by multiplying thenumber of seconds in a cycle by the number of cycles in a program{num_cyc}.

[1520] Total {secs_in_run}={secs_in_run} per cycle*{num_cyc}.

[1521] While (counting down the number of cycles {num_cyc}) While(counting down the number of setpoints {num_seg})

[1522] Get the ramp time {ramp_time}.

[1523] Get the final setpoint temp {t_final}.

[1524] Initialize the ramp variables.

[1525] Get the hold time {local_time}.

[1526] Send a message to the real time display task to display the rampsegment information.

[1527] Calculate the maximum amount of time it should take to ramp tothe setpoint.

[1528] If (the user programmed a ramp time) then

[1529] Compute the error {ramp_err} between the programmed ramp time andthe actual ramp time as follows. This equation is based on empiricaldata.

{ramp_err}=prog ramp_rate*15+0.5 (up ramp)

{ramp_err}=prog ramp_rate*6+1.0 (down ramp)

[1530] where:

[1531] prog ramp_rate=(abs(T_(f)−T_(c))−1)/{ramp_time}

[1532] T_(f)=setpoint temp {t_final}

[1533] T_(c)=current block temp {blktemp}

[1534] abs=absolute value of the expression

[1535] Note: the ‘−1’ is there because the clock starts within 1° C. ofsetpoint.

[1536] new ramp_time=old {ramp_time}−{ramp_err}

[1537] If (new ramp_time>old {ramp_time}) then new ramp_time=old{ramp_time}.

[1538] Else

[1539] new ramp_time=0.

[1540] While (sample temp is not within a user configured temp{cf_clk_dev} of setpoint) Wait for half second wake up message fromtimer task. Post a new ramp setpoint every second.

[1541] Else if (ramping down more than 3° C. and {t_final}>45° C.) then

[1542] Post an intermediate setpoint.

[1543] While (sample temp is more than 1° C. of setpoint)

[1544] Wait for half second wake up message from timer task.

[1545] Increment the half second ramp time counter.

[1546] Check if the maximum time to ramp to setpoint has expired.

[1547] Display an error message if so.

[1548] If ramping up and within some integral band of setpoint, changethe gain.

[1549] If (keyboard task detected a PAUSE key) then

[1550] Post a setpoint of current sample temp.

[1551] Send a message to wake up the pause task.

[1552] Go to sleep until awakened by the pause task.

[1553] Post pre-pause setpoint.

[1554] Post the final setpoint.

[1555] While (sample temp is not within a user configured temp

[1556] {cf_clk_dev} of setpoint)

[1557] Wait for half second wake up message from timer task.

[1558] Increment the half second ramp time counter.

[1559] Check if the maximum time to ramp to setpoint has expired.

[1560] Display an error message if so.

[1561] Check if the gain needs to be changed.

[1562] If (keyboard task detected a PAUSE key) then

[1563] Post a setpoint of current sample temp.

[1564] Send a message to wake up the pause task.

[1565] Go to sleep until awakened by the pause task.

[1566] Post pre-pause setpoint.

[1567] Send a message to the printer task to print the ramp information.

[1568] Beep beeper to signal end of ramp segment.

[1569] Send a message to the real time display task to display the holdsegment information.

[1570] While (counting down the hold time)

[1571] Wait for half second wake up message from timer task.

[1572] Increment the half second hold time counter.

[1573] If (ramping down and on the upramp part of the block temperatureundershoot and both the block and sample temperature are within 0.2° C.of setpoint) then

[1574] Set a flag so that the power equation in pid will revert back tonormal (51)

[1575] If (keyboard task detected a PAUSE key) then

[1576] Post a setpoint of current sample temp.

[1577] Send a message to wake up the pause task.

[1578] Go to sleep until awakened by the pause task.

[1579] Post pre-pause setpoint.

[1580] Write a data record to the history file.

[1581] Send a message to the printer task to print the hold information.

[1582] If (the final setpoint temp has drifted more than the

[1583] user configurable amount {cf temp_dev}) then

[1584] Write an error record to the history file.

[1585] Check for a programmed pause and execute if necessary.

[1586] Go to next segment.

[1587] Send a message to the printer task to print an end of cyclemessage.

[1588] Go to next cycle.

[1589] End of CYCLE program.

[1590] Else if (starting an AUTO-CYCLE program) then

[1591] Add up the total number of seconds in each program {secs_in_run}taking into account the instrument ramp time and the user programmedhold times and temperatures which can be automatically incremented ordecremented by a programmed amount, either linearly or geometrically,each cycle.

[1592] While (counting down the number of cycles {num_cyc})

[1593] While (counting down the number of setpoints {num_seg})

[1594] Get the final setpoint temp {t_final}.

[1595] Get the hold time {time_hold}.

[1596] Send a message to real time display task to display the rampsegment information.

[1597] Check if the user programmed an auto increment or decrement ofthe setpoint temp and/or the hold time and adjust them accordingly.

[1598] If (the auto increment or decrement of the temp causes thesetpoint to go below 0° C. or above 99.9° C.) then

[1599] An error record is written to the history file.

[1600] The setpoint is capped at either 0° C. or 99.9° C.

[1601] If (the auto decrement of the hold time causes the hold time togo below 0 seconds) then An error record is written to the history file.The hold time is capped at 0° C.

[1602] Initialize the ramp variable.

[1603] If (ramping down more than 3° C. and {t_final}>45° C.) then

[1604] Post an intermediate setpoint.

[1605] While (sample temp is not within 1° C. of setpoint)

[1606] Wait for half second wake up message from timer task.

[1607] Increment the half second ramp time counter.

[1608] If (keyboard task detected a PAUSE key) then

[1609] Post a setpoint of current sample temp.

[1610] Send a message to wake up the pause task.

[1611] Go to sleep until awakened by the pause task.

[1612] Post pre-pause setpoint.

[1613] Check if the maximum amount of time to reach setpoint has expiredand write an error message to the history file if it has.

[1614] Check if the gain needs to be changed.

[1615] Post the final setpoint.

[1616] While (sample temp is not within a user configured temp

[1617] {cf_clk_dev} of setpoint)

[1618] Wait for half second wake up message from timer task.

[1619] Increment the half second ramp time counter.

[1620] Check block sensor for open or short.

[1621] If (keyboard task detected a PAUSE key) then

[1622] Post a setpoint of current sample temp.

[1623] Send a message to wake up the pause task.

[1624] Go to sleep until awakened by the pause task.

[1625] Post pre-pause setpoint.

[1626] Send a message to the printer task to print the ramp segmentinformation.

[1627] Beep beeper to signal end of ramp portion of segment.

[1628] Send a message to the real time display task to display the holdsegment information.

[1629] While (counting down the hold time)

[1630] Wait for half second wake up message from timer task.

[1631] Increment the half second hold time counter.

[1632] If (keyboard task detected a PAUSE key) then

[1633] Post a setpoint of current sample temp.

[1634] Send a message to wake up the pause task.

[1635] Go to sleep until awakened by the pause task.

[1636] Post pre-pause setpoint.

[1637] If (ramping down and on the upramp part of the block temperatureundershoot and both the block and sample temperature are within 0.2° C.of setpoint) then

[1638] Set a flag so that the power equation in pid

[1639] will revert back to normal (51).

[1640] Write a data record to the history file.

[1641] Send a message to the printer task to print the hold information.

[1642] If (the final setpoint temp has drifted more than the

[1643] user configurable amount {cf_temp_dev}) then

[1644] Write an error record to the history file.

[1645] Go to next segment.

[1646] Send a message to the printer task to print an end of cyclemessage.

[1647] Go to next cycle.

[1648] End of AUTO-CYCLE program.

[1649] Else if (starting a POWER FAILURE sequence) then

[1650] Post a setpoint of 4° C.

[1651] Set a flag {subamb_hold} so that the pid task will shut off theheated cover.

[1652] DO FOREVER

[1653] Wait for a half second wake up message from the timer task.

[1654] Increment the half second hold time counter.

[1655] END FOREVER LOOP

[1656] End of power failure sequence

[1657] Write a run end status record to the history file.

[1658] If (running a method)

[1659] Set a flag {weird_flag} so the link task will know to send amessage to the sequence task to start the next program running.

[1660] Else

[1661] Return user interface to idle state display.

[1662] End of Forever Loop

[1663] Pause Task Overview

[1664] The purpose of the pause task is to handle either a pause thatthe user programs in a CYCLE or an AUTO-CYCLE program or a pause whenthe user presses the PAUSE key on the keypad.

[1665] When the sequence task encounters a programmed pause whileexecuting a program, it goes to sleep and awakens the pause task. Thepause task in turn sends a message to the real time display task tocontinually display and decrement the time the user asked to pause for.When the pause timer times out, the pause task sends a message to awakenthe sequence task and then goes to sleep. The user can prematurelyresume the program by pressing the START key on the keypad or canprematurely abort the program by pressing the STOP key.

[1666] When the keyboard task detects a PAUSE key while a program isrunning, it sets a flag {pause_flag} then waits for the sequence task toacknowledge it. When the sequence task sees this flag set, it sends anacknowledgment message back to the keyboard task then puts itself tosleep. When the keyboard task receives this message, it awakens thepause task. The pause task sends a message to the real time display taskto continually display and increment the amount of time the program ispaused for. The timer will time out when it reaches the pause time limitset by the user in the configuration section. The user can resume theprogram by pressing the START key on the keypad or abort the program bypressing the STOP key.

[1667] Pause Task Pseudocode:

[1668] Do Forever

[1669] Wait for a message from the keyboard task indicating a keypadpause, or a message form the sequence task indicating a user programmedpause.

[1670] Go to sleep until a message is received.

[1671] When awakened, check a flag for the type of pause initiated.

[1672] If (it is a programmed pause) then

[1673] Send a message to the real time display task to display the pausetimer counting up.

[1674] Else

[1675] Send a message to the real time display task to display the pausetimer counting down.

[1676] While (counting down the time out counter)

[1677] Send a message to the system to suspend this task for half asecond.

[1678] Send a message to the printer task to print the pauseinformation.

[1679] If (it is a programmed pause) then

[1680] Write a status record to the history file.

[1681] The pause has timed out so send a message to the wake up thesequence task.

[1682] Send a message to the real time display task to halt the pausedisplay.

[1683] Send a message to the real time display task to resume therunning program display.

[1684] Else (it is a keypad pause)

[1685] The pause has timed out and the program must be aborted so send amessage to the system to halt the sequence task and send it back to thetop of its FOREVER loop.

[1686] If (the program running was a HOLD program)

[1687] Send a message to the printer task to print the hold information.

[1688] Write a status record to the history file.

[1689] Set {normal_power} flag so PID will use the normal powerequation.

[1690] Return the user interface to its idle state.

[1691] Display an abort message.

[1692] End of Forever Loop

[1693] Display Task Overview

[1694] The purpose of the real time display task is to displaytemperatures, timers, sensor readings, ADC channel readings, and otherparameters that need to be continually updated every half second.

[1695] Display Task Pseudocode:

[1696] Initialize display task variables.

[1697] Do Forever

[1698] Wait for a message every half second from the timer task.

[1699] Go to sleep until the message is received.

[1700] When awakened, check if another task has sent a list ofparameters to display or a flag to halt the current update.

[1701] Toggle the half second flag {half_sec}.

[1702] If (there's a list of parameters to display) then

[1703] Set a semaphore so no one else will update the display.

[1704] Turn off the cursor.

[1705] While (stepping through the list of parameters)

[1706] If (it is a time parameter) then

[1707] Display the time.

[1708] If (half second flag {half_sec} is set) then

[1709] Increment or decrement the time variable.

[1710] Else if (it is a decimal number) then

[1711] Display a decimal number.

[1712] Else if (it is an integer number) then

[1713] Display the integer.

[1714] Else if (it is an ADC channel readout) then

[1715] Read the counts from the ADC channel.

[1716] If (need it displayed as mV) then

[1717] Convert counts to mV.

[1718] Display the value.

[1719] Else if (it is a power display) then

[1720] Display the power in terms of watts.

[1721] Else if (it is the hours left parameter) then

[1722] Convert seconds to tenths of hours.

[1723] Display the hours left in tenths of hours.

[1724] If (half second flag {half_sec} is set) then Decrement theseconds variable.

[1725] If (the cursor was on) then Turn it back on.

[1726] Store the current system time in battery RAM.

[1727] Clear the semaphore to release the display.

[1728] End of Forever Loop

[1729] Printer Task Overview

[1730] The purpose of the printer task is to handle the runtimeprinting. It is a low priority task and should not interfere with othertime critical tasks.

[1731] Printer Task Pseudocode:

[1732] Do Forever

[1733] Wait for a message from another task that wishes to print.

[1734] Go to sleep until a message is received.

[1735] When awaken, make local copies of the global variables to beprinted.

[1736] Post a printer acknowledgement message.

[1737] If (need to print a status or error message) then

[1738] Print the information contained in the current history record.

[1739] Else if (need to print the page header) then

[1740] Print the company name, instrument ID, firmware version numberand the current system time and date.

[1741] Else if (need to print the program header) then

[1742] Print the type of program and its number.

[1743] Else if (need to print the program configuration parameters) then

[1744] Print the tube type, reaction volume and the sample temperaturedeviation from setpoint that starts the clock.

[1745] Else if (need to print end of cycle information) then

[1746] Print the ending time and temperature.

[1747] Else if (need to print segment information) then

[1748] Print either the ramp or hold segment information.

[1749] Else if (need to print a pause status message) then

[1750] Print the amount of time paused for and at what temp.

[1751] End of Forever Loop

[1752] LED Task Overview

[1753] The purpose of the LED task is to make the illumination of the“Heating” LED reflect the power applied to the main heater. This is alow priority task that runs once a second.

[1754] LED Task Pseudocode:

[1755] Initialize LED task variables.

[1756] Do Forever

[1757] Send a message to the system to wake this task every second.

[1758] Go to sleep.

[1759] When awaken, load counter 2 of PIC timer A with a value thatreflects the power applied to the main heater as follows:

load counter with value={K_htled}*{ht_led}

[1760] Where:

[1761] {K_htled} holds a constant to compute the time to pulse theheating LED and is equal to 15200/500. 15200 is a little greater thanthe PIC's clock of 14.4 KHz and this is the value loaded into the timerto keep the LED constantly on. 500 is the main heater power.

[1762] {ht_led} will be a value between 0 and 500 and will be equal tothe watts applied to the main heater.

[1763] End of Forever Loop

[1764] Link Task Overview

[1765] The purpose of the link task is to simulate the user pressing theSTART key on the keypad. This task is necessary so that programs can beexecuted one right after the other (as in a method) without userintervention. The link task wakes up the sequence task and it beginsrunning the next program as if the START key were pressed.

[1766] Link Task Pseudocode:

[1767] Initialize link task variables.

[1768] Do Forever

[1769] If (the flag {weird_flag} is set and it is not the first file in

[1770] the method) then

[1771] Send a message to the sequence task to wake up and run a program.

[1772] End of Forever Loop

Start Up Sequence POWER-UP SEQUENCE

[1773] When the power to the instrument is turned on or the softwaredoes a RESET, the following sequence takes place. Note: the numbersbelow correspond to numbers on the flow chart in FIG. 55.

[1774] 1. Transmit a Ctrl-G (decimal 7) character out the RS-232 printerport. Poll the RS-232 port for at least 1 second and if a Ctrl-G isreceived, it is assumed that an external computer is attached to theport and all communication during the power-up sequence will beredirected from the keypad to the RS-232 port. If no Ctrl-G is received,the power-up sequence continues as normal.

[1775] 2. Check if the MORE key is depressed. If so, go straight to theservice-only hardware diagnostics.

[1776] 3. The next 3 tests are an audio/visual check and cannot reportan error: 1) the beeper beeps 2) the hot, cooling, and heating LEDs onthe keypad are flashed 3) each pixel of the display is highlighted. Thecopyright and instrument ID screens are displayed as the power-updiagnostics execute.

[1777] 4. Should an error occur in one of the power-up diagnostics, thename of the component that failed is displayed and the keypad is lockedto the customer. The code ‘MORE 999’ gains access to the service-onlyhardware diagnostics.

[1778] 5. Check channel 0 of the PPI-B device to see if the automatedtest bit is pulled low. If it is, run the UART test. If the test passes,beep the beeper continuously.

[1779] 6. Start the CRETIN operating system which in turn will start upeach task by priority level.

[1780] 7. Check a flag in battery RAM to see if the instrument has beencalibrated. If not, display an error message and lock the keypad to thecustomer. The code ‘MORE 999’ gains access to the service-onlycalibration tests.

[1781] 8. Run a test that measures the voltage and line frequency andsee if both these values match the configuration plug selected whilecalibrating the instrument. If not, d!splay an error message and lockthe keypad to the customer. The code ‘MORE 999’ gains access to theservice-only calibration tests.

[1782] 9. Check a flag in battery RAM to see if the instrument has beeninstalled. If not, display an error message and lock the keypad to thecustomer. The code ‘MORE 999’ gains access to the install routine.

[1783] 10. Check a flag in battery RAM to see if there was a powerfailure while the instrument was running. If so, start a 4° C. soak anddisplay the amount of time the power was off for. Ask the user if theywish to view the history file which will tell them exactly how far alongthey were in the run when the power went off. If they select yes, theygo straight to the user diagnostics.

[1784] 11. Beep the beeper.

[1785] 12. Display the top level user interface screen.

What we claim is:
 1. An apparatus for the controlled automat dperformance of polymerase chain reactions in at least one sample tubecontaining a known volume of a liquid sample mixture, which apparatuscomprises: a. a sample block having at least one well for said at leastone sample tube, b. a computing apparatus, c. heating and cooling meanscontrolled by said computing apparatus for changing the temperature ofsaid sample block, and d. means for determining the temperature of saidblock in a first sample interval, wherein said first sample interval isan interval of time designated as time n; wherein said computingapparatus includes means for determining the temperature of said liquidsample mixture as a function of the temperature of said sample blockover time.
 2. The apparatus of claim 1, wherein said computing apparatusincludes means for determining said sample temperature in said firstsample interval according approximately to: T _(samp) _(n) =T _(samp)_(n−1) +(T _(B) _(n) -T _(samp) _(n-1) )*t _(interval)/tau whereT_(samp) _(n) is equal to th sample temperature in said first sampleinterval, T_(samp) _(n-1) is a sample temperature in a second sampleinterval immediately preceding the first sample interval, said secondsample interval designated as time n-1, T_(B) _(n) is equal to the blocktemperature in said first sample interval, t_(interval) is a time inseconds between consecutive sample intervals, and tau is a function ofthermal characteristics of said apparatus.
 3. The apparatus of claim 2,wherein said thermal characteristics comprise a first thermal timeconstant corresponding to said at least one sample tube and said volumeof said sample mixture, and a second thermal time constant correspondingto a block temperature sensor thermally coupled to said block.
 4. Theapparatus of claim 3, wherein tau equals approximately said firstthermal time constant minus said second thermal time constant.
 5. Theapparatus of claim 4, wherein said first thermal time constant isbetween approximately 5 seconds and 14 seconds and said second thermaltime constant equals approximately 1.5 seconds.
 6. The apparatus ofclaim 2 further comprising an input device for receiving one or moreuser defined setpoints, each said setpoint defining a hold time/firsttemperature pair; and wherein said computing apparatus includes meansfor controlling said heating and cooling means as a function of saiduser d fined setpoints and said sample temperature; and wherein saidcomputing apparatus further comprises means to combine one or moresetpoints in a user defined order to form a profile wherein thecontrolling of said heating and cooling means as a function of thesetpoints in a said profile defines a profile run.
 7. The apparatus ofclaim 6, wherein said first temperature defines a target sampletemperature after ramping said sample temperature at a preselected ramprate, and said hold time defines a length of time to maintain saidsample at said first temperature after ramping.
 8. The apparatus ofclaim 1 further including an input device for receiving user definedsetpoints defining a hold time/temperature profile, wherein saidcomputing apparatus includes means for controlling said heating andcooling means as a function of said user defined setpoints and saidsample temperature.
 9. The apparatus of claim 7, wherein said apparatusfor the controlled automated performance of polymerase chain reactionsincludes an enclosure for said sample block defining an enclosed ambientatmosphere, and wherein said sample block is comprised of a centralregion containing in an upper surface an array of sample wells forholding said at least one sample tube, an end edge region comprising twoend edges at opposite ends of said block which are in thermal contactwith said enclosed ambient atmosphere, and a manifold region comprisingtwo manifold edges at opposite sides of said block, wherein each saidmanifold dge is thermally coupled to a manifold.
 10. The apparatus ofclaim 9 wherein said heating means is a heater having a central heatingzone thermally coupled to said central region, an end edge heating zonethermally coupled to said edge region, and a manifold heating zonethermally coupled to said manifold region.
 11. The apparatus of claim 10wherein said computing apparatus comprises means for determining anactual heating power to be applied to each said heating zone in saidfirst sample interval, including: a. means for determining a theoreticalsecond power representing the total power to apply to said block in saidsample interval without accounting for power losses, b. means fordetermining theoretical third powers to be applied to each said zone insaid first sample interval as a function of said theoretical secondpower, c. means for determining power losses by said regions in saidfirst sample interval, and d. means for determining the actual heatingpower to be applied to each said heating zone as a function of saidtheoretical third powers and said power losses by said regions.
 12. Theapparatus of claim 11, wherein said means for determining saidtheoretical second power includes: a. means for determining a firstfraction of the difference between the target sample temperature afterramping and the sample temperature in said second sample interval to bemade up in said first sample interval, and b. means for determining saidtheoretical second power as a function of said first fraction, saidsample temperature in said second sample interval and said blocktemperature in said second sample interval.
 13. The apparatus of claim12 wherein said means for determining said theoretical second powerincludes means for determining said theoretical second power as afunction of: CP*P/t _(interval)*((SP−T _(samp) _(n-1) )*F*tau/t_(interval) +T _(samp) _(n-1) −T_(B) _(n-1) ) where CP is equal to athermal mass of said block, P is a proportional term gain, SP is saidtarget sample temperature after ramping, F is said first fraction andT_(B) _(n−1) is equal to the temperature of the block in said secondsample interval.
 14. The apparatus of claim 11 wherein said computingapparatus comprises means for adjusting said theoretical second powerwhen said sample temperature in said second sample interval is within anintegral band of said target sample temperature after ramping, in orderto close out remaining error.
 15. The apparatus of claim 14, whereinsaid integral band is approximately +/−0.5° C.
 16. The apparatus ofclaim 14, wherein said means for adjusting said theoretical second powercomprises means for adjusting said theoretical second power as afunction of a power adjustment term given approximately by:int_sum_(n)=int_sum_(n-1)+(SP−T _(samp) _(n-1) ) pwr_adj=ki*int_sum_(n)where pwr_adj equals said power adjustment term, int_sum_(n) is a valueof an accumulating integral term in said first sample interval,int_sum_(n-1) is a value of said accumulating integral term in saidsecond sample interval, SP is said target sample temperature afterramping, and ki equals an integral gain.
 17. The apparatus of claim 16,wherein said integral gain is approximately
 512. 18. The apparatus ofclaim 11, wherein said means for determining said theoretical thirdpowers comprises means for dividing said theoretical second power intosaid theoretical third powers in proportion to the relative areas ofsaid zones.
 19. The apparatus of claim 11, wherein said means fordetermining power losses by said regions in said first sample intervalcomprises: a. means for determining power lost to a foam backing on saidsample block in said first sample interval, b. means for determiningpower lost to said manifolds in said first sample interval, and c. meansfor determining power lost to said enclosed ambient atmosphere in saidfirst sample interval.
 20. The apparatus of claim 19, wherein said meansfor determining power lost to said foam backing on said sample block insaid first sample interval comprises: a. means for determining thetemperature of said foam backing in said first sample interval, b. meansfor determining said power lost to said foam backing as a function ofsaid temperature of said foam backing in said first sample interval,said temperature of said block in said first sample interval, and athermal mass of said foam backing.
 21. The apparatus of claim 20,wherein said means for determining the temperature of the foam backingin said first sample interval comprises means for determining thetemperature of the foam backing in said first sample interval accordingapproximately to: T _(foam) _(n) =T _(foam) _(n-1) +(T _(B) _(n) −T_(foam) _(n-1) )*t _(interval)/tau2 where T_(foam) _(n) is equal to thetemperature of the foam backing in said first sample interval, T_(foam)_(n-1) is equal to the foam backing temperature in said second sampleinterval, and tau2 is a function of said thermal mass of said foambacking.
 22. The apparatus of claim 21, wherein tau2 is approximately30.
 23. The apparatus of claim 20, wherein said means for determiningthe power lost to said foam backing comprises means for determining thepower lost to said foam backing according approximately to:foam−pwr=C*(T _(B) _(n) −T _(foam) _(n) ) where foam−pwr is said powerlost to said foam backing in said first sample interval, T_(foam) _(n)is equal to the temperature of the foam in said first sample intervaland C is equal to the thermal mass of the foam backing.
 24. Theapparatus of claim 19 additionally comprising means for delivering abias coolant constantly applied to said sample block, and wherein saidmeans for determining the power lost to said manifolds in said firstsample interval comprises means for determining the power lost to saidmanifolds in said first sample interval according approximately to:manifold_loss=KA(T _(B) _(n) −T _(A) _(n) )+KC(T _(B) _(n) −T _(C) _(n))+TM(dT/dt) where manifold_loss equals said power lost to said manifoldsin said first sample interval, KA equals an end edge region-to-enclosedambient atmosphere conductance constant, T_(A) _(n) equals the enclosedambient atmosphere temperature in said first sample interval, T_(C) _(n)equals the temperature of said bias coolant in said first sampleinterval, KC equals a sample block-to-coolant conductance constant, TMequals a thermal mass of said manifolds and dT/dt equals saidpreselected ramp rate.
 25. The apparatus of claim 19 additionallycomprising means for delivering a bias coolant constantly applied tosaid sample block, and wherein said means for determining the power lostto said enclosed ambient atmosphere in said first sample intervalcomprises means for determining the power lost to said enclosed ambientatmosphere in said first sample interval according approximately to:ambient_loss=K 2 A(T _(B) _(n) −T _(A) _(n) )+K 2 C(T _(B) _(n) −T _(C)_(n) )+TM 2(dT/dt) where ambient_loss is said power lost to saidenclosed ambient atmosphere in said first sample interval, K2A equals anend edge region-to-enclosed ambient atmosphere conductance constant,T_(A) _(n) equals the enclosed ambient atmosphere temperature in saidfirst sample interval, K2C equals an end edge region-to-coolantconductance constant, T_(C) _(n) equals the temperature of the biascoolant in said first sample interval, TM2 equals a thermal mass of saidenclosed ambient atmosphere, and dT/dt equals said preselected ramprate.
 26. The apparatus of claim 11, wherein said means for determiningthe actual heating power to be applied to each said heating zone as afunction of said theoretical third powers and said power losses by saidregions comprises means for determining the actual heating power to beapplied to each said heating zone as a function of said theoreticalthird powers and said power losses by said regions accordingapproximately to: central_pwr=pwr*cpermanifold_pwr=pwr*mper+manifold_loss edge_pwr=pwr*eper+ambient_loss wherepwr is a function of said theoretical second power plus power lost to afoam backing on said block in said first sample interval, manifold_lossequals a power lost to said manifolds in said first sample interval,ambient_loss equals a power lost in said edge region to said enclosedambient atmosphere in said first sample int rval, central_pwr equals apower to be applied to said central heating zone in said first sampleinterval, manifold_pwr equals a power to be applied to said manifoldheating zone in said first sample interval, edge_pwr equals a power tobe applied to said end edge heating zone in said first sample interval,cper equals a percentage of heater area in said central heating zone,mper equals a percentage of heater area in said manifold heating zone,and eper equals a percentage of heater area in said edge heating zone.27. The apparatus of claim 26, wherein cper equals approximately 0.66,mper equals approximately 0.20 and eper equals approximately 0.14. 28.The apparatus of claim 9, wherein said sample block contains multipletransverse bias cooling channels alternating with multiple transverseramp cooling channels, said bias and ramp cooling channels beingparallel to said upper surface, said apparatus further comprising meansfor constantly pumping chilled coolant through said bias coolingchannels and means for selectively pumping chilled coolant through saidramp cooling channels comprising valve means controlled by saidcomputing apparatus.
 29. The apparatus of claim 28 wherein saidcomputing apparatus comprises means for determining a total coolingpower to be applied to said block in said first sample intervalincluding: a. means for determining a theoretical cooling powerrepresenting the total power to apply to said block in said first sampleinterval without accounting for power losses, b. means for determiningpower losses in said block regions in said first sample interval, and c.means for determining said total cooling power as a function of saidtheoretical cooling power and said power losses.
 30. The apparatus ofclaim 29 wherein said means for selectively pumping chilled coolantthrough said ramp cooling including further comprises: a. means fordetermining that ramp direction is downward, b. means for determining acooling breakpoint as a function of said block temperature and atemperature of said coolant, and c. means for determining if coolantwill be pumped through said ramp cooling channels as a function of saidtotal cooling power and said cooling breakpoint, wherein thedetermination made by said means for determining if coolant will bepumped through said ramp cooling channels constitutes a ramp coolingdecision.
 31. The apparatus of claim 29 wherein said means fordetermining said theoretical cooling power includes: a. means fordetermining a second fraction of the difference between the targetsample temperature after ramping and the sample temperature in saidsecond sample interval to be made up in said first sample interval, andb. means for determining said theoretical cooling power as a function ofsaid second fraction, said sample temperature in said second sampleinterval and said block temperature in said second sample interval. 32.The apparatus of claim 31, wherein said means for determining saidtheoretical cooling power comprises means for determining saidtheoretical cooling power as a function of: CP*P/t _(interval)*((SP−T_(samp) _(n-1) )*F*tau/t_(interval)+T_(samp) _(n-1) −T_(B) _(n-1) )where CP is equal to a thermal mass of said block, P is a proportionalterm gain, SP equals said target sample temperature after ramping, T_(B)_(n−1) is equal to the temperature of the block in said second sampleinterval, F is said second fraction and T_(B) _(n-1) is equal to thetemperature of the block in said second sample interval.
 33. Theapparatus of claim 29 wherein said computing apparatus comprises meansfor adjusting said theoretical cooling power when said sampletemperature in said second sample interval is within an integral band ofsaid target sample temperature after ramping, in order to close outremaining error.
 34. The apparatus of claim 33, wherein said integralband is approximately +/−0.5° C.
 35. The apparatus of claim 33 , whereinsaid means for adjusting said theoretical cooling power comprises meansfor adjusting said theoretical cooling power as a function of a poweradjustment term given approximately by: int_sum_(n)=int_sum_(n−1)+(SP−T_(samp) _(n−1) ) pwr_adj=ki*int_sum_(n) where pwr_adj equals said poweradjustment term, int_sum_(n) is a value of an accumulating integral termin said first sample interval, int_sum_(n−1) is a value of saidaccumulating integral term in said second sample interval, SP equalssaid target sample temperature after ramping, and ki equals an integralgain.
 36. The apparatus of claim 35, wherein said integral gain isapproximately
 512. 37. The apparatus of claim 29, wherein said means fordetermining power losses in said block regions in said first sampleinterval comprises: a. means for determining power lost to a foambacking on said sample block in said first sample interval b. means fordetermining power lost to said manifolds in said first sample interval,and c. means for determining power lost to said enclosed ambientatmosphere in said first sample interval.
 38. The apparatus of claim 37,wherein said means for determining power lost to said foam backing onsaid sample block in said first sample interval comprises: a. means fordetermining the temperature of said foam backing in said first sampleinterval, b. means for determining said power lost to said foam backingas a function of said temperature of said foam backing in said sampleinterval, said temperature of said block in said first sample interval,and a thermal mass of said foam backing.
 39. The apparatus of claim 38,wherein said means for determining the temperature of the foam backingin said first sample interval comprises means for determining thetemperature of the foam backing in said first sample interval accordingapproximately to: T _(foam) _(n) =T _(foam) _(n-1) +(T _(B) _(n) −T_(foam) _(n-1) )*t_(interval)/tau2 where T_(foam) _(n) is equal to thetemperature of the foam backing in said first sample interval, T_(foam)_(n-1) is equal to the foam backing temperature in said second sampleinterval, and tau2 is a function of said thermal mass of said foambacking.
 40. The apparatus of claim 39, wherein tau2 is approximately30.
 41. The apparatus of claim 39, wherein said means for determiningthe power lost to said foam backing comprises means for determining thepower lost to said foam backing according approximately to:foam−pwr=C*(T _(B) _(n) −T _(foam) _(n) ) where foam−pwr is said powerlost to said foam backing in said first sample interval, T_(foam) _(n)is equal to the temperature of the foam in said first sample intervaland C is equal to the thermal mass of the foam backing.
 42. Theapparatus of claim 37, wherein said means for determining the power lostto said manifolds in said first sample interval comprises means fordetermining the power lost to said manifolds in said first sampleinterval according approximately to: manifold_loss=KA(T _(B) _(n) −T_(A) _(n) )+KC(T _(B) _(n) −T _(C) _(n) )+TM(dT/dt) where manifold_lossequals said power lost to said manifolds in said first sample interval,KA equals an end edge region-to-enclosed ambient atmosphere conductanceconstant, T_(A) _(n) equals the enclosed ambient atmosphere temperaturein said first sample interval, T_(C) _(n) equals a temperature of saidbias coolant in said first sample interval, KC equals a sampleblock-to-coolant conductance constant, TM equals a thermal mass of saidmanifolds and dT/dt equals said preselected ramp rate.
 43. The apparatusof claim 37, wherein said means for determining the power lost to saidenclosed ambient atmosphere in said first sample interval comprisesmeans for determining the power lost to said enclosed ambient atmospherein said first sample interval according approximately to:ambient_loss=K2A(T _(B) _(n) −T _(A) _(n) )+K2C(T _(B) _(n) −T _(C) _(n))+TM2(dT/dt) where ambient_loss is said power lost to said enclosedambient atmosphere in said first sample interval, K2A equals an end edgeregion-to-enclosed ambient atmosphere conductance constant, T_(A) _(n)equals the enclosed ambient atmosphere temperature in said first sampleinterval, K2C equals an end edge region-to-coolant constant, T_(C) _(n)equals the coolant temperature in said first sample interval, TM2 equalsa thermal mass of said enclosed ambient atmosphere, and dT/dt equalssaid preselected ramp rate.
 44. The apparatus of claim 30, wherein saidcooling breakpoint is a function of the difference between said blocktemperature in said first sample interval and said temperature of saidcoolant fluid in said first sample interval.
 45. The apparatus of claim30, wherein said means for determining if said ramp cooling channelswill be open further comprises means for determining if said rampcooling channels will be open as a function of the difference betweensaid total cooling power and said cooling breakpoint.
 46. The apparatusof claim 1, further comprising means for overshooting the temperature ofsaid sample block above a desired sample temperature, thereby decreasingan upramp time required for said liquid sample mixture to achieve saiddesired sample temperature.
 47. The apparatus of claim 46 furthercomprising means for controlling the overshoot such that it is equal toor less than approximately 0.5° C.
 48. The apparatus of claim 16additionally comprising means for delivering a bias coolant constantlyapplied to said sample block, and wherein said means for adjusting saidtheoretical second power comprises means for dynamically modifying saidintegral gain when said sample temperature is within said integral bandof said target sample temperature, and said apparatus is performing anupramp, according approximately to: Gain_(n) =C1*(SP−TC _(n))+C2 WhereGain_(n) is said integral gain in said first sample interval, C1 is afirst gain constant, SP is said target sample temperature after ramping,TC_(n) is the temperature of said coolant in said first sample intervaland C2 is a second gain constant.
 49. The apparatus of claim 48, whereinsaid C1 equals approximately 0.65.
 50. The apparatus of claim 48,wherein said C2 equals approximately
 109. 51. The apparatus of claim 48,wherein said C2 equals approximately
 105. 52. The apparatus of claim 48wherein a gain constant is used for said integral gain when said sampletemperature is within a second integral band of said target sampletemperature, said second integral band being smaller than said integralband.
 53. The apparatus of claim 52, wherein said integral band isapproximately +/−11° C. and said second integral band is approximately+/−0.5° C.
 54. The apparatus of claim 52, wherein said gain constant isapproximately
 512. 55. The apparatus of claim 1, further comprisingmeans for undershooting the temperature of said sample block below adesired sample temperature, thereby decreasing a downramp time requiredfor said liquid sample mixture to achieve said desired sampletemperature.
 56. The apparatus of claim 55 further comprising means forcontrolling the undershoot such that it is equal to or less thanapproximately 0.5° C.
 57. The apparatus of claim 30 further comprisingmeans for dynamically changing said means for determining saidtheoretical cooling power such that the temperature of the block willundershoot said target sample temperature after ramping in a controlledfashion.
 58. The apparatus of claim 57 further comprising means foractivating, as a function of said target sample temperature afterramping, ramp direction, and said ramp cooling decision, said means fordynamically changing said means for determining said theoretical coolingpower.
 59. The apparatus of claim 58, wherein said means for activatingsaid means for dynamically changing said means for determining saidtheoretical cooling power comprises means for activating said means fordynamically changing said means for determining said theoretical coolingpower if said target sample temperature after ramping is greater thanapproximately 45° C., ramp direction is downward and said ramp coolingdecision is not to ramp.
 60. The apparatus of claim 57, wherein saidmeans for dynamically changing said means for determining saidtheoretical cooling power further comprises means for determining saidtheoretical cooling power as a function of: CP P/t _(interval)*((SP−T_(B) _(n-1) )*F*tau/t _(interval))
 61. The apparatus of claim 1, whereinsaid means for determining the temperature of said block in said firstsample interval comprises means for determining the temperature of saidblock in said first sample interval as a function of at least onetemperature of said block in a previous sample interval.
 62. Theapparatus of claim 1, wherein said means for determining the temperatureof said block in said first sample interval comprises means for readingthe temperature of said block from a block temperature sensor thermallycoupled to said block.
 63. The apparatus of claim 2, whereint_(interval) equals approximately 0.2 seconds.
 64. The apparatus ofclaim 1, wherein said known volume of liquid sample mixture is in therange of approximately 20-100 microliters.
 65. In an apparatuscomprising a servomechanism, the improvement comprising means fordynamically adjusting gain to compensate for dynamic changes in damping.66. In an apparatus comprising a temperature control servo system, theimprovement comprising means for dynamically adjusting gain tocompensate for dynamic changes in damping.
 67. The apparatus of claim 6,wherein said computing apparatus comprises means for receiving userissued commands to invoke said profile runs, wherein said invokingcauses said profiles to be run at least once.
 68. The apparatus of claim67, wherein said input device further comprises means for receiving auser defined cycle count number for a plurality of said profiles, andwherein said computing means comprises means for running said profilessaid cycle count number of times automatically when said profiles areinvoked.
 69. Th apparatus of claim 68, wherein said computing apparatusfurther comprises means for linking multiple profiles in any order toform a protocol, said protocol defining a sequence of said profiles tobe invoked automatically upon said command from the user, whereininvoking said sequence of profiles automatically defines a protocol run.70. The apparatus of claim 69, wherein said computing apparatus furthercomprises means for linking a single profile a plurality of times in asingle protocol.
 71. The apparatus of claim 69, wherein said computingapparatus further comprises means for storing a plurality of protocols.72. The apparatus of claim 71, wherein said computing apparatuscomprises means for including any said profile in a plurality of saidprotocols.
 73. The apparatus of claim 69, wherein said computingapparatus comprises means for protecting a profile included in any saidprotocol from being deleted or overwritten.
 74. The apparatus of claim6, further comprising means for determining that an electrical power tooperate said apparatus went off during a said profile run.
 75. Theapparatus of claim 74 further comprising means for reporting the lengthof said electrical power outage when said electrical power is restored.76. The apparatus of claim 74, further comprising means forautomatically starting a soak of said liquid sample mixture uponrestoration of said electrical power.
 77. The apparatus of claim 76,wherein said soak occurs at approximately 4° C.
 78. The apparatus ofclaim 68 further comprising means for automatically increasing the holdtime of any or all said setpoints from cycle to cycle in said cyclecount.
 79. The apparatus of claim 78, wherein activation of said meansfor automatically increasing the hold time of any or all setpoints fromcycle to cycle is selectable as a user level option.
 80. The apparatusof claim 78, wherein said computing apparatus comprises means forreceiving first user defined values defining an increment in hold timefrom cycle to cycle, and wherein said means for automatically increasingthe hold time comprises means for automatically increasing the hold timeof any or all said setpoints from cycle to cycle as a first function ofsaid first user defined values.
 81. The apparatus of claim 80, whereinsaid first function is a linear function.
 82. The apparatus of claim 80,wherein said first function is a geometric function.
 83. The apparatusof claim 68 further comprising means for automatically decreasing thehold time of any or all said setpoints from cycle to cycle in said cyclecount.
 84. The apparatus of claim 83, wherein activation of said meansfor automatically decreasing the hold time of any or all setpoints fromcycle to cycle is selectable as a user level option via said inputdevice.
 85. The apparatus of claim 83, wherein said computing apparatuscomprises means for receiving second user defined values defining adecrement in hold time from cycle to cycle, and wherein said means forautomatically decreasing the hold time comprises means for automaticallydecreasing the hold time of any or all said setpoints from cycle tocycle as a second function of said second user defined values.
 86. Theapparatus of claim 85, wherein said second function is a linearfunction.
 87. The apparatus of claim 85, wherein said second function isa geometric function.
 88. The apparatus of claim 68 further comprisingmeans for automatically increasing the first temperature of any or allsaid setpoints from cycle to cycle in said cycle count.
 89. Theapparatus of claim 88, wherein activation of said means forautomatically increasing the first temperature of any or all setpointsfrom cycle to cycle is selectable as a user level option.
 90. Theapparatus of claim 88, wherein said computing apparatus comprises meansfor receiving third user defined values defining an increment in thefirst temperature from cycle to cycle, and wherein said means forautomatically increasing the first temperature comprises means forautomatically increasing the first temperature of any or all setpointsfrom cycle to cycle as a third function of said third user definedvalues.
 91. The apparatus of claim 90, wherein said third function is alinear function.
 92. The apparatus of claim 90, wherein said thirdfunction is a geometric function.
 93. The apparatus of claim 68 furthercomprising means for automatically decreasing the first temperature ofany or all said setpoints from cycle to cycle in said cycle count. 94.The apparatus of claim 93, wherein activation of said means forautomatically decreasing the first temperature of any or all setpointsfrom cycle to cycle is selectable as a user level option.
 95. Theapparatus of claim 93, wherein said computing apparatus comprises meansfor receiving fourth user defined values defining a decrement in firsttemperature from cycle to cycle, and wherein said means forautomatically decreasing the first temperature comprises means forautomatically decreasing the first temperature of any or all setpointsfrom cycle to cycle as a fourth function of said fourth user definedvalues.
 96. The apparatus of claim 95, wherein said fourth function is alinear function.
 97. The apparatus of claim 95, wherein said fourthfunction is a geometric function.
 98. The apparatus of claim 69, furthercomprising a programmed pause option means to automatically suspend asaid profile run for a user defined period of time.
 99. The apparatus ofclaim 98, further comprising a programmed pause option means toautomatically suspend a said protocol run for a user defined period oftime.
 100. The apparatus of claim 99, wherein said pause option meanscomprises means to suspend a said profile run at any point in a saidprofile run or during any or all cycles of a said profile invocation,and further comprising means for suspending a said protocol run afterany or all said profile runs in a said protocol run.
 101. The apparatusof claim 7 further comprising user-controllable means for defining atemperature range such that said computing apparatus will commencetiming said hold time when said sample temperature is within saidtemperature range of said target sample temperature.
 102. The apparatusof claim 3, further comprising an input device for receiving a tube typeand a reaction volume, and wherein said computing apparatus comprisesmeans for determining said thermal time constant for said reaction tubeas a function of said tube type and said reaction volume.
 103. Theapparatus of claim 10, further comprising means for performingdiagnostic checks of said heating means.
 104. The apparatus of claim103, wherein said diagnostic checks of said heating means comprises oneor more heater ping tests, block thermal capacity tests, ramp coolingconductance tests, sensor lag tests.
 105. The apparatus of claim 33,further comprising means for performing diagnostic checks of a coolingcapacity of said apparatus.
 106. The apparatus of claim 28, wherein saiddiagnostic checks comprise one or more control cooling conductancetests, block thermal capacity tests, chiller tests, ramp coolingconductance tests, sensor lag tests, coolant capacity tests.
 107. Theapparatus of claim 1, further comprising means for performing hardwarediagnostics on user demand and/or automatically upon system start-up.108. The apparatus of claim 107, wherein said hardware diagnosticsinclude tests of one or more of a Programmable Peripheral Interfacedevice, Battery RAM device, Battery RAM checksum, EPROM devices,Programmable Interface Timer devices, Clock/Calendar device,Programmable Interrupt Controller device, Analog to Digital Section,RS-232 Section, Display Section, Keyboard, Beeper, Ramp Cooling Values,EPROM mismatch, Firmware version level, Battery RAM Checksum andInitialization, Autostart Program Flag, Clear Calibration Flag, HeatedCover heater and control circuitry, Edge heater and control circuitry,Manifold heater and control circuitry, Central heater and controlcircuitry, Sample block thermal cutoff, Heated cover thermal cutoff.109. The apparatus of claim 62 further means for adjusting temperaturesensor readings from said block temperature sensor to account for driftin analog circuitry.
 110. The apparatus of claim 109 wherein said meansfor adjusting temperature sensor readings from said block temperaturesensor to account for drift in the analog circuitry further comprisesmeans for determining said drift according to: a) Measuring one or moretest voltages under controlled conditions, b) Reading said voltages atthe start of each run c) Measuring said drift as a function of said testvoltages under controlled conditions and said voltages at the start ofeach run.
 111. The apparatus of claim 69, wherein said computingapparatus comprises a means to display the approximate amount of timeleft in a said profile run or in a said protocol run.
 112. The apparatusof claim 69, wherein said computing apparatus comprises means fordisplaying, during a said profile or protocol run, the sampletemperature at any given time in said profile or protocol run.
 113. Theapparatus of claim 7, further comprising means for determining, for oneor more setpoints, a first difference between said sample temperatureafter said hold time has expired and said target sample temperature ofsaid setpoint.
 114. The apparatus of claim 113, further comprising meansfor receiving and storing a user defined temperature differential. 115.The apparatus of claim 114, wherein said computing apparatus comprisesmeans to report an error if said user defined temperature differentialis greater than said first difference.
 116. The apparatus of claim 7,further comprising means for configuring a second temperature, andfurther comprising means for causing said heating and cooling means tomaintain said sample at said second temperature during any idle state.117. The apparatus of claim 7, further comprising m ans for determiningthat, for one or more setpoints, said first temperature is reachedwithin a user definable amount of time.
 118. The apparatus of claim 93,further comprising means for determining whether said automaticallydecreased first temperature remains within a defined range.
 119. Theapparatus of claim 88, further comprising means for determining whethersaid automatically increased first temperature remains within a definedrange.
 120. The apparatus of claim 83, further comprising a means todetermine whether said automatically decreased hold time is negative.121. The apparatus of claim 62 further comprising means to continuallymonitor said block sensor and to invoke an abort procedure if blocksensor readings are above a maximum desireable temperature for saidblock by a predetermined number of degrees for a predetermined number oftimes.
 122. The apparatus of claim 121, wherein said abort procedurecomprises one or more of aborting the profile or protocol run, flaggingan error in a history file, displaying message alerts to a user,disabling said heating means.
 123. The apparatus of claim 69, furthercomprising means for printing information stored in said system. 124.The apparatus of claim 123, wherein said information comprises one ormore of: contents of a profile, contents of a protocol, listing ofcreated profiles, listing of created protocols, configurationparameters, system calibration parameters.
 125. The apparatus of claim1, further comprising means for controlling all user controllablefunctions remotely.
 126. The apparatus of claim 1 wherein said computingapparatus comprises means to display a menu driven user interface. 127.The apparatus of claim 69 wherein said computing apparatus maintains ahistory file of an immediately previous run containing details of saidprevious run suitable for integrity checks and error analysis.
 128. Amethod for computer control of the automated performance of polymerasechain reactions in at least one sample tube containing a known volume ofliquid sample mixture by means of a computer-controlled thermocyclerincluding a computing apparatus, a sample block having at least one wellfor said at least one sample tube, a block temperature sensor thermallycoupled to said sample block, and heating and cooling means controlledby said computing apparatus for changing the temperature of said sampleblock, comprising the steps by said computing apparatus of a. readingthe block temperature at predetermined times, b. determining thetemperature of said liquid sample mixture as a function of thetemperature of said sample block over time, and c. controlling saidheating and cooling means as a function of said sample temperature. 129.The method according to claim 128 wherein said step of determining thetemperature of said liquid sample comprises the steps of (i) determininga first thermal time constant for said at least one sample tube and saidvolume of liquid sample mixture, (ii) determining a second thermal timeconstant for said block temperature sensor, and (iii) determining thesample temperature in a sample interval at a current time n according tothe formula T _(samp) _(n) =T _(samp) _(n-1) +(T _(B) _(n) −T _(samp)_(n-1) )*t _(interval)/tau where T_(samp) _(n) is equal to the sampletemperature at time n, the time at said current sample interval,T_(samp) _(n-1) is equal to the sample temperature at an immediatelypreceding sample interval having occurred at time n-1, T_(B) _(n) isequal to the block temperature at time n, t_(interval) is a time inseconds between sample intervals, and tau is said first thermal timeconstant minus said second thermal time constant.
 130. The methodaccording to claim 128 wherein said sample block comprises a centralregion containing said at least one well, an end edge region in thermalcontact with an enclosed ambient atmosphere and a manifold regionthermally coupled to at least one manifold, wherein said heating meansincludes a zone for each of said regions, and wherein the step ofcontrolling said heating means comprises the step of (iv) determining atheoretical second power representing the total power to apply to saidblock in a current sample interval at a current time n withoutaccounting for power losses, (v) dividing said theoretical second powerinto theoretical powers, one to be applied to each of said heatingzones, (vi) determining power losses by said regions in said currentsample interval, and (vii) determining an actual third power for each ofsaid zones in said current sample interval to account for power loss byeach said zone.
 131. The method according to claim 130 where in saidthermocycler additionally includes bias cooling constantly applied tosaid sample block, wherein said computer-controlled cooling meanscomprises selectively operable ramp cooling means for selectivelydelivering a cooling fluid to said sample block, and wherein the step ofcontrolling said selectively operable ramp cooling means includes thesteps of (viii) determining that sample temperature ramp direction isdownward, (ix) determining the temperature of said cooling fluid, (x)determining as a function of said sample temperature a theoreticalcooling power to apply to said block in said current sample intervalwithout accounting for power losses, (xi) determining a coolingbreakpoint as a function of the difference between the block temperatureand the temperature of said cooling fluid in the current sampleinterval, and (xiii) selectively operating said ramp cooling means as afunction of said theoretical cooling power and said cooling breakpoint.132. Thermocycler apparatus suitable for automated performance of thepolymerase chain reaction comprising a. a metal sample block having amajor top surface and a major bottom surface, b. an array ofspaced-apart sample wells formed in said major top surface, c. biascooling constantly applied to said sample block at a rate sufficient tocause said block, if at a temperature within the range of 35-100° C., tocool uniformly at a rate of at least about 0.1° C./sec unless externalheat is supplied, and d. computer-controllable heating means responsiveto said computer system capable of uniformly raising the temperature ofsaid block at a rate greater than the bias cooling rate, saidthermocycler apparatus being capable, under the control of a computer,of maintaining the array of sample wells at a constant in the range of35-100° C. within a tolerance band of plus or minus about 0.5° C. 133.Thermocycler apparatus according to claim 132 wherein said arraycomprises a rectangular array having rows of spaced-apart sample wells.134. Thermocycler apparatus according to claim 133 wherein said arraycomprises an 8-by-12 rectangular array having center-to-center samplewell spacing compatible with industry standard microliter plate format.135. Thermocycler apparatus according to claim 134 wherein said sampleblock has a block thermal capacity of about 500-600 watt-seconds per °C.
 136. Thermocycler apparatus according to claim 133 wherein saidsample block contains multiple transverse bias cooling channels throughsaid block parallel to said top surface and parallel to and spaced fromthe rows of wells, and wherein said bias cooling is applied by pumpingcooling liquid through said bias cooling channels.
 137. Thermocyclerapparatus according to claim 136 wherein said bias cooling channels areinsulated.
 138. Thermocycler apparatus according to claim 132 whereinsaid computer-controllable heating means comprises multiple, separatelycontrollable heating zones for said block, at least one first zone forthe portion of the block containing the array of sample wells and atleast one second zone for the peripheral portion of the block outsidethe array.
 139. Thermocycler apparatus according to claim 138 whereinsaid computer-controllable heating means comprises a multizone filmheater in thermal contact with said major bottom surface. 140.Thermocycler apparatus according to claim 132 wherein said sample blockincludes around its periphery a guard band having thermalcharacteristics similar to the block portion containing the array andwherein said guard band is bias cooled and controllably heated. 141.Thermocycler apparatus according to claim 140 wherein said guard bandincludes a groove formed in said top surface extending substantiallyaround said array, decreasing the thermal conductivity between the blockportion containing the array and the guard band.
 142. Thermocyclerapparatus according to claim 140 wherein said computer-controllableheating means comprises multiple, separately controllable heating zonesfor said block, at least one first zone for the portion of the blockcontaining the array of sample wells and at least one second zone forthe guard band.
 143. Thermocycler apparatus according to claim 142wherein said computer-controllable heating means comprises a multizonefilm heater in thermal contact with said major bottom surface. 144.Thermocycler apparatus according to claim 132 further comprisingcomputer-controllable ramp cooling means capable of lowering thetemperature of said block at a rate of at least about 4° C. per secondfrom 100° C. and at least about 2° C. per second from 40° C. 145.Thermocycler apparatus according to claim 144 wherein said arraycomprises a rectangular array comprising rows of spaced-apart samplewells, wherein said sample block contains multiple transverse biascooling channels alternating with multiple transverse ramp coolingchannels, and wherein said bias cooling and said ramp cooling areapplied by pumping cooling liquid through said ramp cooling channels andsaid bias cooling channels.
 146. Thermocycler apparatus according toclaim 145 further comprising means to deliver cooling liquid to oppositeends of successive ramp cooling channels.
 147. Thermocycler apparatusaccording to claim 144 wherein said computer-controllable heating meansis capable of ramp heating.
 148. Thermocycler apparatus according toclaim 147 wherein said controllable heating comprises multiple,separately controllable heating zones for said block, at least one firstzone for the portion of the block containing the array of sample wellsand at least one second zone for the portion of the block outside thearray.
 149. Thermocycler apparatus according to claim 148 wherein saidcomputer-controllable heating means comprises a multizone film heater inthermal contact with said major bottom surface.
 150. Thermocyclerapparatus according to claim 132 further comprising means for seatinginto the wells in said array sample tubes of nonidentical height with aseating force on each sample tube sufficient to cause a snug, flush fitbetween the surface of the tube and the surface of the well. 151.Thermocycler apparatus according to claim 150 wherein said means forseating comprises deformable, compliant, gas-tight caps for said sampletubes, a vertically displaceable platen, and controllable means forforcibly lowering said platen to maintain said seating force on the capfor each tube.
 152. Thermocycler apparatus according to claim 151wherein said platen is maintained at a heated temperature in the rangeof 94-110° C.
 153. Thermocycler apparatus according to claim 152 whereinsaid platen is maintained at a temperature in the range of 100-110° C.154. Thermocycler apparatus according to claim 132 further comprising acomputer system for controlling said heating means.
 155. Thermocyclerapparatus according to claim 144, wherein said computer system controlssaid ramp cooling means.
 156. Thermocycler apparatus suitable forautomated, rapid performance of the polymerase chain reaction comprisinga. a thermally homogeneous metal sample block of low thermal mass havinga major top surface and a major bottom surface, said block containing ina central region of its upper surface an 8-by-12 rectangular array ofsample wells having center-to-center spacing compatible with industrystandard microliter plate format, said block also containing aperipheral region surrounding said array, said peripheral regioncomprising a guard band having thermal characteristics similar to thethermal characteristics of the central region, b. a bias cooling systemfor constantly cooling said sample block at a bias cooling ratesufficient to cause said block, if at a temperature within the range of35-100° C., to cool uniformly at a rate of at least about 0.1° C./secunless external heat is supplied, c. a computer system for receiving andstoring user data regarding times and temperatures defining a pluralityof reaction cycles, d. a ramp cooling system controlled by said computersystem for selectively cooling said sample block at a ramp cooling rateof at least about 4° C./sec from 100° C. and at least about 2° C./secfrom 40° C., e. a multizone heating system controlled by said computersystem having a heating zone for the central region of the block and aheating zone for the guard band, said heating system being capable ofproviding heat necessary to maintain the sample block at a constanttemperature in the range of 35-100° C. and also capable of providingramp heating to the block, f. a pressing cover vertically displaceableabove said sample block, and g. cover displacing means for raising saidcover and for lowering said cover and maintaining its vertical positionagainst a resisting force of at least about 3000 grams, saidthermocycler apparatus being capable of maintaining the array of samplewells at a constant temperature in the range of 35-100° C. within atolerance band of plus or minus 0.5° C.
 157. Thermocycler apparatusaccording to claim 156 wherein said pressing cover comprises a heatedplaten maintainable at a temperature in the range of 94-110° C. 158.Thermocycler apparatus according to claim 156 wherein said multizoneheating system comprises a film heater in thermal contact with thebottom surface of the sample block.
 159. Thermocycler apparatusaccording to claim 158 wherein said bias cooling system comprises aseries of bias cooling channels through said block parallel to said topsurface and parallel to and spaced from the rows of wells, and pumpmeans for pumping cooling liquid through said bias cooling channels.160. Thermocycler apparatus according to claim 159 wherein said rampcooling system comprises a series of ramp cooling channels through saidblock parallel to the bias cooling channels and spaced apart therefromand from the rows of wells, and pump means for pumping cooling liquidthrough said ramp cooling channels, entering at opposite ends ofsuccessive ramp cooling channels.
 161. Thermocycler apparatus accordingto claim 160 wherein there is one bias cooling channel and one rampcooling channel proximate each row of sample wells.
 162. Thermocyclerapparatus according to claim 156 further comprising h. a two-pieceplastic holder for loosely holding up to 96 microliter sample tubes of apreselected design, each having a cylindrically shaped upper sectionopen at its top end and a closed, tapered lower section extendingdownwardly therefrom, each tube being of circular cross section andhaving a circumferential shoulder extending outwardly from said uppersection at a position on said upper section spaced from the open endthereof, comprising aa. a one-piece tray member comprising i. a flat,horizontal plate section containing 96 holes in an 8-by-12 rectangulararray compatible with industry standard microliter plate format, saidholes being slightly larger than the outside diameter of the uppersections of said tubes but smaller than the outside diameter of saidshoulder, ii. a first vertical tray sidewall section completely aroundsaid plate extending upwardly to a height greater than the height of atub r sting in one of said holes, iii. a second vertical tray sidewallsection around said plate extending downwardly approximately to thebottom of the upper section of a tube resting in one of said holes, bb.a one-piece retainer releasably engageable inside said tray over anysample tubes resting in said tray comprising i. a flat, horizontal platesection containing 96 holes in an 8-by-12 rectangular array compatiblewith industry standard microliter plate format, said holes beingslightly larger than the outside diameter of the upper sections of saidtubes but smaller than the outside diameter of said shoulder, ii. avertical retainer sidewall section around said retainer plate sectionextending upwardly from said plate, wherein when said retainer isengaged inside said tray, the retainer plate section lies slightly abovethe shoulder of a tube resting in said tray and the first tray sidewallsection is about as high as said retainer sidewall section, wherebytubes resting in said tray are retained loosely both vertically andlaterally and extend downwardly into said sample wells, i. up to 96microliter sample tubes in said holder, each of which engages adeformable cap for forming a gas-tight seal thereon, and each of whichsaid caps protrudes slightly above an uppermost edge of said two-pieceplastic holder when said sample tubes are seated in said holder and insaid sample wells.
 163. Thermocycler apparatus according to claim 162wherein the downward displacement of said cover deforms the tops of saidcaps downwardly until the displacement is stopped by said uppermost edgeof said two-piece plastic holder.
 164. Thermocycler apparatus accordingto claim 163 wherein said uppermost edge of said two-piece plasticholder contacts the underside of said cover around the entire peripheryof said edge, thus forming a gas-tight seal.
 165. Thermocycler apparatusaccording to claim 156 comprising at least two heating zones for theguard band.
 166. A two-piece plastic holder for loosely holding up to 96microliter sample tubes of a preselected design, each having acylindrically shaped upper section open at its top end and a closed,tapered lower section extending downwardly therefrom, each tube being ofcircular cross section and having a circumferential shoulder extendingoutwardly from said upper section at a position on said upper sectionspaced from the open end thereof, comprising a. a one-pi c tray membercomprising i. a flat, horizontal plate section containing 96 holes in an8-by-12 rectangular array compatible with industry standard microliterplate format, said holes being slightly larger than the outside diameterof the upper sections of said tubes but smaller than the outsidediameter of said shoulder, ii. a first vertical tray sidewall sectioncompletely around said plate extending upwardly to a height greater thanthe height of a tube resting in one of said holes, iii. a secondvertical tray sidewall section around said plate extending downwardlyapproximately to the bottom of the upper section of a tube resting inone of said holes, b. a one-piece retainer releasably engageable insidesaid tray over any sample tubes resting in said tray comprising i. aflat, horizontal plate section containing 96 holes in an 8-by-12rectangular array compatible with industry standard microliter plateformat, said holes being slightly larger than the outside diameter ofthe upper sections of said tubes but smaller than the outside diameterof said shoulder, ii. a vertical retainer sidewall section around saidretainer plate section extending upwardly from said plate, wherein whensaid retainer is engaged inside said tray, the retainer plate sectionlies slightly above the shoulder of a tube resting in said tray and thefirst tray sidewall section is about as high as said retainer sidewallsection, whereby tubes resting in said tray are retained loosely bothvertically and laterally.
 167. Apparatus according to claim 166 whereinthe holes in said tray section are countersunk and wherein the undersideof the shoulders of said tubes are correspondingly beveled. 168.Apparatus according to claim 167 wherein the holes in the tray platesection and in the retainer plate section are larger in diameter thansaid tubes by about 0.7 mm.
 169. Apparatus according to claim 166wherein said tray member further comprises a plurality of support ribsextending along the underside of the tray plate member between rows ofholes said ribs extending downwardly to the same extent as said secondvertical tray sidewall section.
 170. Apparatus according to claim 166wherein said tray member further comprises a skirt section extending atleast partially around said tray plate section and depending verticallyfrom that section, said skirt section being adapted to fit into a guardband groove in a thermocycler sample block.
 171. Apparatus according toclaim 166 wherein said tray plate section has at least two openingsprovided therein and said retainer plate section has an identical numberof vertical tabs, downwardly extending from said retainer plate, suchthat said tabs project through said openings and releasably engage thetray when said retainer is assembled with said tray.
 172. Apparatusaccording to claim 171 wherein said tabs are disposed so as to form partof a skirt section extending downwardly at least partially around saidtray plate section and wherein said tabs are adapted to fit into a guardband groove in a thermocycler sample block.
 173. Apparatus according toclaim 172 wherein said openings and said tabs are positioned such thatsaid retainer and said tray are capable of only one orientation relativeto one another when said openings and said tabs are engaged. 174.Apparatus according to claim 171 wherein said tabs are deflectable in asidewise direction in order to come into alignment with said openings.175. Apparatus according to claim 166 further comprising up to 96microliter sample tubes in said holder.
 176. Apparatus according toclaim 175 further comprising up to 96 deformable caps on said tubes forforming gas-tight seals thereon.
 177. Apparatus according to claim 176wherein each said cap has a downwardly depending cylindrical flange forforming a gas-tight seal with each said tube and a circumferentialshoulder extending outwardly from said flange which prevents said flangefrom being seated on said tube below a predetermined point. 178.Apparatus according to claim 177 wherein the outer circumference of saiddownwardly depending flange fits snugly to form a gas-tight seal withthe inner circumference of said tube.
 179. Apparatus according to claim176 wherein groups of 12 of said caps are linked together to form asingle strand of caps which are suitably spaced so as to form gas-tightseals with up to 12 of said tubes.
 180. Apparatus according to claim 166further comprising a plastic base having 96 wells arranged in an 8-by-12rectangular array, said wells being dimensioned to snugly accept thelower sections of up to 96 said sample tubes, said base beingassemblable with said tray, said retainer and 96 of said tubes to form amicroliter plate having the footprint of an industry standard microliterplate.
 181. Apparatus according to claim 176 wherein said caps projectabove said first vertical tray sidewall section but are downwardlydeformable to the height of said section.
 182. Apparatus according toclaim 181 wherein said caps are deformable by heat and verticallydownward force.
 183. Apparatus according to claim 181 wherein said capsare resiliently deformable.
 184. A PCR reaction-compatible one-pieceplastic microcentrifuge-type tube comprising a first substantiallycylindrically shaped upper wall section and a second substantiallyconically shaped lower wall section characterized by said second wallsection being substantially reduced in thickness relative to said firstwall section to a thickness of no more than approximately 0.012 inches.185. The tube of claim 184 wherein said second wall section comprisesthe frustrum of a cone with an included angle of about 17 degrees. 186.The tube of claim 185 wherein said second section holds about 100microliters of liquid.
 187. The tube of claim 184 wherein said firstwall section has a thickness of about 0.03 inches.
 188. The tube ofclaim 184 wherein said second wall section has a thickness of about0.009 inches.
 189. The tube of claim 184 wherein said tube is made frompolypropylene.
 190. The tube of claim 189 wherein said tube isautoclavable.
 191. The tube of claim 189 wherein said second wallsection has a thickness of about 0.009 inches.
 192. The tube of claim184 further comprising a one-piece cap pivotally attached to said tubeand removably insertable into said tube to hermetically seal it, saidcap comprising a substantially cylindrically shaped third lower section,a resiliently deformable closed fourth top section, and acircumferential shoulder, extending radially outwardly, attached to saidthird section.
 193. The cap of claim 192, wherein said fourth section isdome shaped.
 194. The cap of claim 192, wherein said cap is made frompolypropylene.
 195. The cap of claim 194, wherein said cap isautoclavable.
 196. A PCR reaction-compatible five-hundred microlitermicrocentrifuge-type tube having an overall height of about 1.1 inches,comprising a substantially cylindrically shaped upper wall section and asubstantially conically shaped lower wall section, characterized by saidlower wall section including an angle of about 17 degrees and having athickness substantially reduced relative to said upper wall section toapproximately 0.012 inches.
 197. The tube of claim 196 wherein said tubeis made from polypropylene.
 198. The tube of claim 197 wherein said tubeis autoclavable.
 199. A PCR reaction-compatible, one-piece moldedplastic sample tube comprising a first wall portion having a thicknessof from about 0.008 to about 0.013 inches defining an inverted,substantially conically shaped lower section having a closed bottom endand an upper end approximately 0.2 inches in inside diameter, said lowersection having a volume of about 100 microliters, and a second wallportion, substantially thicker than said first wall portion, defining asubstantially cylindrically shaped upper section approximately 0.2inches in inside diameter, said upper section having a volume of atleast about 100 microliters.
 200. A tube according to claim 199 whereinsaid plastic is autoclavable.
 201. A tube according to claim 199 whereinsaid first wall portion comprises the frustrum of a cone with anincluded angle of about 17 degrees.
 202. A tube according to claim 199wherein said plastic is polypropylene.
 203. A tube according to claim202 wherein said first wall portion has a thickness of about 0.009inches.
 204. A tube according to claim 199 wherein said tube comprises atop, further comprising a circumferential shoulder extending radiallyoutwardly from said second wall portion, said shoulder being spaced fromsaid top.
 205. A tube according to claim 204 wherein said shoulder has abeveled lower portion.
 206. A tub according to claim 205 wherein saidfirst wall portion has a thickness of about 0.009 inches, wherein saidplastic is autoclavable polypropylene, and wherein said first wallportion comprises the frustrum of a cone with an included angle of about17 degrees.
 207. A tube according to claim 206 wherein said second wallportion is outwardly thickened at said top.
 208. A tube according toclaim 207 wherein the inside surface of said second wall portion isbeveled at said top.
 209. The apparatus of any of claims 1, 132, 156, or166 further comprising at least one tube according to claim 184, whereinsubstantially entirely said second wall section contacts the wall of awell.
 210. The apparatus of any of claims 1, 132, 156 or 166 furthercomprising at least one tube and cap according to claim 192 whereinsubstantially entirely said second wall section contacts the wall of awell.
 211. In a combination of a thermal cycler suitable for performingthe polymerase chain reaction comprising a temperature-controlled metalblock having an array of tapered wells in its top surface, and aplurality of individual reaction tubes having similarly tapered lowersections and upper sections which project above the top surface of theblock when the tubes are placed in said wells, the improvementcomprising means for seating said tubes in said wells, said seatingmeans comprising: a) resiliently deformable sealing caps removablyattached to said tubes, b) a platen, c) support means for supporting theplaten above the block, d) displacement means associated with thesupport means for raising the platen above said caps and for lowering itso as to apply a force of at least 30 grams to each cap.
 212. Theapparatus according to claim 211 further comprising controllable heatingmeans to maintain said platen at a preselected temperature in the rangeof 94-100° C.
 213. The apparatus according to claim 212 furthercomprising skirt means attached to said support means for isolating saidblock and said tubes.
 214. The apparatus according to claim 212, whereinsaid displacement means comprises screw means.
 215. The apparatusaccording to claim 212 further comprising a two-piece plastic holderaccording to claim 166, wherein each said tube has a circumferentialshoulder extending outwardly from said upper section at a position onsaid upper section below the open end thereof, and wherein said array oftapered wells comprises 96 wells in an industry standard microtiterplate format.
 216. The apparatus according to claim 215, wherein saiddisplacement means includes means for lowering said platen so as toapply a force of 50-100 grams to each cap.
 217. The apparatus of claim215, wherein said displacement means further comprises means for seatingsaid platen on said uppermost edge of said holder such that said tubesare substantially enclosed by the block, the uppermost edge of saidholder and the platen.
 218. The apparatus of claim 211, wherein saidplurality of reaction tubes are loosely held in an array.